下面的 bash 脚本显示了一个错误。我怎样才能克服这些错误。
#!/cpd/misc/bin/bash
while[1];
do date "+%T";
sleep 60;
done
错误:
./bash1.sh: line 2: while[1]: command not found
./bash1.sh: line 3: syntax error near unexpected token `do'
./bash1.sh: line 3: `do date "+%T";'
答案1
几个错误:
while
条件之前、之后需要一个空格[1]
在 bash 中是错误的,大概你想使用具有真值 1 的东西。如果是这样,请使用:
或true
,这两个是最常见和可读的- 此外,由于命令由换行符分隔,因此不需要
;
在每行末尾添加 s
所以你可以这样做:
#!/cpd/misc/bin/bash
while :
do
date "+%T"
sleep 60
done
答案2
while
后面必须跟一个空格。
不过你觉得呢[1]
?如果有一个名为 的文件1
,它将被匹配,因此 bash 将看到while 1
,如果1
不是可执行文件并且在 $PATH 中,它将失败。如果没有1
,bash 将尝试运行[1]
并可能再次失败,因为没有人理智地命名他们的可执行脚本和程序[1]
。