【发布时间】:2017-02-23 07:32:21
【问题描述】:
我正在编写一个非常简单的 bash 脚本,但我无法理解为什么已弃用的 $[] 可以完美运行,而 $(()) 似乎破坏了整个过程。
我指的代码是:
for i in {1..10};
do
printf %4d $[{1..10}*i]
echo
done
在这个版本中我没有任何问题,但我不想使用已弃用的 bash 元素,这就是我想切换到 $(()) 的原因。
不幸的是,一旦我将代码更改为:
printf %4d $(({1..10}*i))
我收到一个错误:
./script_bash.sh: line 8: {1..10}*i: syntax error: argument expected (error token is "{1..10}*i")
如果能在这方面提供一些帮助,我将不胜感激......
【问题讨论】:
-
$(())是一个算术表达式。它不会在那里进行常规通配符或大括号扩展。
标签: bash brace-expansion