Linux Crontab中Bash脚本中的While/Do/Done循环错误
我正试图通过crontab运行一个abash脚本,每次我尝试运行时,该脚本都不会运行,我会收到一个错误:“未找到” 我目前使用的while循环编码如下:Linux Crontab中Bash脚本中的While/Do/Done循环错误,linux,bash,unix,cron,crontab,Linux,Bash,Unix,Cron,Crontab,我正试图通过crontab运行一个abash脚本,每次我尝试运行时,该脚本都不会运行,我会收到一个错误:“未找到” 我目前使用的while循环编码如下: SHELL/=bin/sh padtowidth=2 START=0 END=15 i=${START} while [[ ${i} -le ${END} ]] do done ((i = i + 1)) 我不确定为什么crontab不喜欢开头的双括号…这是因为[[…]]是特定于BASH的 使用以下命令将shell更改为BASH: SH
SHELL/=bin/sh
padtowidth=2
START=0
END=15
i=${START}
while [[ ${i} -le ${END} ]]
do
done
((i = i + 1))
我不确定为什么crontab不喜欢开头的双括号…这是因为
[[…]]
是特定于BASH的
使用以下命令将shell更改为BASH:
SHELL=/bin/bash
在
sh
(用作脚本的最后一行)中,甚至算术求值括号(…)
也不受支持,这是因为[…]
是特定于BASH的
使用以下命令将shell更改为BASH:
SHELL=/bin/bash
即使是算术计算括号
(…)
在sh
(用作脚本的最后一行)中也不受支持使用bash
在crontab中显式运行脚本,因为/bin/sh
是crontab使用的默认shell,例如
* ... * /bin/bash /path/to/your/script.sh
我不确定
SHELL/=bin/sh
做了什么,但这是一个格式错误的赋值。至少应该是SHELL=/bin/sh
在crontab中用bash
显式运行脚本,因为/bin/sh
是crontab使用的默认SHELL,例如
* ... * /bin/bash /path/to/your/script.sh
我不确定
SHELL/=bin/sh
的作用是什么,但它是一个格式错误的赋值。至少应该是SHELL=/bin/sh
cron不是问题所在。[[
在sh中是无效语法。这是一种bash主义。不建议在脚本中设置SHELL
的值。(它不太可能像您认为的那样。)cron不是问题。[[
在sh中是无效语法。这是一种bash主义。不建议在脚本中设置SHELL
的值。(它不太可能像您认为的那样。)