Intereting Posts
Как сделать мой сетевой принтер сети видимым для других ноутбуков? Как обрабатывать удаленный txt-файл как поток? OverlayFS Плавно редактирует файл в нижнем каталоге Фоновый процесс (postgresql), получающий SIGINT от Ctrl-C в оболочке исключить конкретный файл из bash_completion Проблема загрузки Ubuntu (или любой ОС) даже после выполнения чистой установки Запись видеофайла с нестандартным соотношением сторон на DVD SSH другому пользователю того же хоста, используя домен DNS Путаница в определении apt-get dist-upgrade Альтернативы HUD В чем разница между curl и wget? Отключить сенсорную панель при вводе текста, а также нажать сенсорную панель для сеанса X Есть ли лучшие / более безопасные методы запуска OpenVPN-клиента как обычного пользователя? Эффективно использовать терминальную документацию (без веб-браузера) Сценарии использования рабочего стола Zswap, Zram, Zcache

Как передать аргументы в сценарий оболочки bash при выполнении этой команды с помощью?

У меня есть сценарий оболочки, который принимает аргумент и использует это в скрипте. Поэтому для запуска скрипта я ввожу /path/to/script argument

Проблема заключается в попытке настроить этот файл для запуска с помощью утилиты at . я пытался

at -f /path/to/script argument 17:45

at -f '/path/to/script argument' 17:45

но ни один из этих вариантов не работает. Первый получает синтаксическую ошибку, а второй не говорит о таком файле. Любые предложения?

Поскольку at умолчанию для чтения со стандартного ввода, вы можете просто сделать это:

 echo /path/to/script argument | at 17:45 

Я бы рекомендовал следовать совету @ warl0ck в общем случае – создать новый скрипт, например /path/to/newscript :

  #!/bin/bash /path/to/script argument 

и затем запустить это, используя:

  at -f /path/to/newscript 17:45 

Это упрощает настройку любых аргументов, выполнение нескольких команд и т. Д.

В качестве альтернативы, для случайного или одноразового использования, вы можете просто запустить с выбранным временем, а затем ввести любую команду (ы), которая вам нужна для стандартного ввода; нажмите ctrl-D до конца:

  myhost# at 17:45 /path/to/script argument <ctrl-D> Job 1 will be executed using /bin/sh 

У меня тоже была эта проблема, и я решил ее использовать EOF.

Это sshserverhost ssh соединение с sshserverhost которое выполняет test.sh с параметром $HOSTNAME на удаленном сервере (sshserverhost).

 at now + 1 minutes <<EOF ssh -t sshserverhost 'bash -s' <~/test.sh $HOSTNAME EOF