在while循环中找不到Bash脚本命令错误

时间:2018-01-17 08:40:30

标签: bash while-loop comparison declare typeset

我有问题,但仍无法处理它。 :( 这是我的代码

declare -i disk_usage_rate=$(df -h /appdata/SCT_CDR | cut -d '%' -f 1 | awk 'NR==2{print $5}')

while ["$disk_usage_rate" -gt 80]
do
...
...
done

我从df -h命令获取磁盘使用率。但在while循环中我得到了followig错误。顺便说一下,它是bash脚本。

  

bash:[84:命令未找到

我尝试了很多东西,但我还没解决。

2 个答案:

答案 0 :(得分:1)

我看到一个错误:在'['之后和']'之前的空行添加空格:

while [ "$disk_usage_rate" -gt 80 ]

它更好吗?

答案 1 :(得分:1)

您在while循环中使用的方括号附近缺少空格,如下面的 -

declare -i disk_usage_rate=$(df -h /appdata/SCT_CDR | cut -d '%' -f 1 | awk 'NR==2{print $5}')

while [ "$disk_usage_rate" -gt 80 ]
do
...
...
done
  

一点历史:这是因为' ['在历史上不是一个   shell-built-in但是接收expresson的单独的可执行文件   作为参数并返回结果。如果你没有围绕着这样的话。['   对于空间,shell将搜索$ PATH以获得不同的   文件名(而不是找到它)。 - Andrew Medico Jun 24&09; 09 1:13

参考 - bash shell script syntax error