Как указано в руководстве
crontab -l
перечисляет crontab для текущего пользователя
/var/spool/cron/root
, если вы являетесь пользователем root.
crontab -u other -l
для другого пользователя. Отредактируйте crontab с помощью
crontab -e
Формат:
#.---------------- minute (0 - 59)
#| .------------- hour (0 - 23)
#| | .---------- day of month (1 - 31)
#| | | .------- month (1 - 12) OR jan,feb,mar,apr ...
#| | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
#| | | | |
#* * * * * the command to be executed
0 */2 * * * /every2h.sh
В дополнение к этому существует также
find /etc/cron* -type f
, который не рекомендуется использовать, поскольку он предназначен для распределительных заданий cron. все эти файлы запускаются от имени пользователя root и по умолчанию не доступны для записи другим пользователям.
При запуске
FILE='/tmp/1.txt' echo "file: $FILE"
оболочка расширяет переменную $FILE перед выполнением присваивания, поэтому, предполагая, что FILE ранее не был установлен, вы получите:
FILE='/tmp/1.txt' echo "file: "
Вы можете подтвердить это поведение, установив сначала известное значение FILE:
FILE="foo"
FILE='/tmp/1.txt' echo "file: $FILE"
Вторая строка расширяется до:
FILE='/tmp/1.txt' echo "file: foo"
Затем значение FILE в контексте этой команды изменяется на /tmp/1.txt
. Затем оболочка выполняет echo "file: foo"
Как упомянул @admstg в своем ответе, вы можете сделать:
FILE='/tmp/1.txt'; echo "file: $FILE"
Но это поведение отличается от того, что вы изначально пытались сделать. То, что у вас было изначально, устанавливает FILE только на время команды echo; вышеприведенное устанавливает его на время работы оболочки (или до тех пор, пока он не будет явно отключен).
Вы должны разделить две команды с помощью; чтобы затем определить переменную, вызвав ее.
Поскольку вы вызываете переменную в той же оболочке, вам не нужно экспортировать переменную.
Это должно работать:
FILE='/tmp/TEST.txt' ; echo "file : $FILE"