我正在尝试编写一个程序来检查存储在文件(变量n)+ 8中的数字是否大于或等于100.如果是,则终止,否则,添加8并存储回文件。但是,当我尝试运行它时,它表示无法找到第4行中的命令(如果条件)。有人可以向我解释为什么这不起作用?感谢。
#!/bin/bash
n=$(cat test.txt)
if [$(($n+8)) -ge 100]
then
echo 'terminated program' > test.txt
else
m=$(($n+3))
echo $m > test.txt
fi
答案 0 :(得分:3)
你错过了一些空格:
if [$(($n+8)) -ge 100]
- >
if [ $(($n+8)) -ge 100 ]
但在使用bash时,更喜欢使用bash arithmetic:
的现代解决方案if (( n+8 >= 100 ))
甚至
if ((n+8>=100))
就像@Gordon Davisson在评论中所说:算术上下文如inside(())是bash中空间不是关键分隔符的少数几个地方之一。