Jadi jika cwd
adalah /tmp
sekarang:
crontab -l
> #min hour day mon dow command
> * * * * * /usr/local/bin/growlnotify -t 'helloTitle' -m 'helloMessage' -n 'myApp' -sw
tapi:
echo $(crontab -l)
> #min hour day mon dow command 0004d519be91d 0004d519d798b launch-0NKnNe launch-NdhkpV
launch-bqJRD2 launch-zac20v launchd-276.rbWQ6r 0004d519be91d 0004d519d798b launch-0NKnNe
launch-NdhkpV launch-bqJRD2 launch-zac20v launchd-276.rbWQ6r 0004d519be91d 0004d519d798
launch-0NKnNe launch-NdhkpV launch-bqJRD2 launch-zac20v launchd-276.rbWQ6r 0004d519be91d
0004d519d798b launch-0NKnNe launch-NdhkpV launch-bqJRD2 launch-zac20v launchd-276.rbWQ6r
0004d519be91d 0004d519d798b launch-0NKnNe launch-NdhkpV launch-bqJRD2 launch-zac20v
launchd-276.rbWQ6r /usr/local/bin/growlnotify -t 'helloTitle' -m 'helloMessage' -n 'myApp' -sw
jadi baris pertama + / konten tmp + baris terakhir dari crontab
Mengapa berperilaku seperti itu? Aku butuh $(crontab -l)
untuk ituif [[ $(crontab -l | grep "^...$") =~ "^...$"]]
set -f
!echo "$(crontab -l)"
, membantu jugagrep
dan gagal jika itu bukan perintah yang valid.Meningkatkan pada jawaban sebelumnya, tidak ada nilai dalam menjalankan perintah dalam subkulit.
Hanya untuk menekankan, ini menghindari kebutuhan
set -f
karena hanya kode output darigrep
yang diperiksa.sumber