所以我只是在研究一些简单的算术代码。这就是我得到的:
echo "The number should be 2";
declare -i input added
input= date +%w
let added="input/2"
echo "$added"
当我运行它时输出是
4
0
我想要得到2.我到底做错了什么?
答案 0 :(得分:5)
问题是如何创建input
变量。它只是执行命令,但没有将结果分配给input
。相反,做:
input=$(date +%w)
这会将date
命令的输出分配给input
。
答案 1 :(得分:3)
替代方式:
#Just echo the result:
expr $(date +%w) / 2
#store the result into a variable:
input=$(expr $(date +%w) / 2)
echo $input
2
答案 2 :(得分:0)
有一点需要注意的是,在Bash中,你通常不能在等号周围留出空格。
使用let
的替代语法是使用$(())
或(())
:
var2=$((var1 / 2))
或者
((var2 = var1 / 2))
在双括号内,您可以使用空格,并且可以从变量名的开头省略美元符号。