Sül*_*han 2 bash comparison declare while-loop 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
Run Code Online (Sandbox Code Playgroud)
我从 df -h 命令获得磁盘使用率。但是在 while 循环中,我收到了 followig 错误。顺便说一句,它是 bash 脚本。
bash: [84: 找不到命令
我尝试了很多东西,但我还没有解决。
您在 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
Run Code Online (Sandbox Code Playgroud)
一点历史:这是因为 '[' 在历史上不是 shell 内置的,而是一个单独的可执行文件,它接收表达式作为参数并返回结果。如果您没有用空格将 '[' 括起来,shell 将在 $PATH 中搜索不同的文件名(而不是找到它)。– 安德鲁梅迪科 2009 年 6 月 24 日 1:13
Ref - bash shell 脚本语法错误