为什么我的脚本会抛出错误?

为什么我的脚本会抛出错误?

下面的 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]

相关内容