Ваша команда:
echo "test" | at 20:48
говорит at
выполнить команду test
без аргументов. Это встроенная оболочка, которая работает, но не работает. Попробуйте:
test
echo $?
Это дает 1
для меня, указывая на провал.
Вы, наверное, имели в виду что-то вроде:
echo "echo test" | at 20:48
Теперь вы просто должны знать, где выход будет. /dev/null
- разумное предположение. Итак, попробуйте:
echo "echo test > /tmp/x39.214" | at 20:48
Затем, когда 20:48 (или выбранный новое время) пришел и ушел, искать файл /tmp/x39.214
содержать строку test
.
Команда at
считывает свой стандартный ввод для выполнения ряда команд. Они запускаются с вашей средой, но без подключения терминала (поэтому /dev/null
- это стандартный ввод, вывод, ошибка — или, если нет, вы будете получать выходные данные по электронной почте). Поэтому ваша команда должна организовать хранение своих выходов, где вы можете их найти. Фиксированное имя, например /tmp/x39.214
, не является хорошей идеей, но вам нужно определить, куда будет идти файл и какое имя будет. Часто имя будет включать время.
Поскольку at
читает стандартный ввод, вы можете перенаправить стандартный ввод любым удобным вам способом, с помощью здесь doc, или здесь строки, или из файла, или с помощью канала, чтобы назвать только четыре механизма.
$ echo "echo test >/tmp/x39.214" > file1.txt
$ at 20:48 < file1.txt
$ at 20:48 <<'EOF'
> echo test >/tmp/x39.214
> EOF
$ at 20:48 <<< 'echo test >/tmp/x39.214'
$ cat file1.txt | at 20:48
$
я опустил выход из at
для каждого из перечисленных выше команд.
at -l
Чтобы просмотреть список вакансий и просмотреть, что будет работать.
Почему вы думаете, что делаете что-то неправильно?'atd' запускает команды как подпроцессы своего демона - на ваш терминал не будет выводиться, даже если команда' test' _did_ имеет какой-либо вывод (а это не так). –
Имейте в виду также - 'echo" test "| в 20: 48' не отправляет «echo» test «' to 'at', он отправляет' test' на; труба оболочки соединяет ** выход ** команды слева с входом команды справа, а выход теста «echo» - 'test'. –
@CharlesDuffy Итак, как мне отправить команду? –