【发布时间】:2022-06-11 00:12:31
【问题描述】:
我对 bash 中的 $ 符号有点困惑。 为什么第一行代码有效,第二行报错??
echo $(($1 * 2))
echo (($1 * 2))
$ 符号像指针一样工作吗? 为什么第一个 while 循环不工作而第二个 while 循环工作? 谁能解释一下? 为什么有人应该学习 bash?
#giving error
n=1
while [$n -le 5]
do
echo "Running $n time"
((n++))
done
#Not giving error
n=1
while [ $n -le 5 ]
do
echo "Running $n time"
(( n++ ))
done
【问题讨论】:
-
$不仅仅意味着一件事;它在不同的上下文中意味着不同的东西。$(( ))是符合 POSIX 的算术 表达式 的语法。(( ))是算术 语句 的非 POSIX / 扩展语法。您不能将语句用作另一个命令的参数。 -
(以及“为什么任何人都应该学习 bash?”远过于宽泛且基于观点的问题无法在此处讨论)。
标签: bash shell command-line sh