如何在shell脚本中使用+=运算符



我有一个非常简单的代码如下。

myVal=""
for ((i=1 ;i<=5 ;i++))
do
myVal+=" * "
echo $myVal
done

问题是:

  1. 我无法在此shell脚本代码中使用+=
  2. 当我在varibale中发送*时,它会打印我工作目录中的所有文件

输出:

*
* * 
* * *
* * * *
* * * * *

您的问题与+=无关,它运行良好;您的myVal变量有一系列星号,完全符合预期。但当您echo它时,这些星号会扩展到文件列表中。为了防止这种情况,你需要引用扩展:

echo "$myVal"

你应该总是在shell中引用扩展,除非你有很好的具体理由不这样做。基本上,每当你看到一个$前面没有双引号时,你都应该停下来思考,确保你知道代码中发生了什么。

相关内容

  • 没有找到相关文章

最新更新