And*_*rej 4 bash brace-expansion for
以下 bash 脚本
#!/bin/bash
startNumber=$(( 1 ))
endNumber=$(( $startNumber + 3 ))
#for number in {$startNumber..$endNumber}
for number in {1..4}
do
echo $number
done
exit 0
Run Code Online (Sandbox Code Playgroud)
给出所需的输出
1
2
3
4
Run Code Online (Sandbox Code Playgroud)
但是,当我切换未注释和注释的 for 循环时,输出是
{1..4}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
for ((number=startNumber; number<=endNumber; number++)); do
echo "$number"
done
Run Code Online (Sandbox Code Playgroud)
此外,没有理由使用算术扩展,因为startNumber您应该简单地执行:
startNumber=1.
此外,您不需要用于$在算术扩展中扩展变量,因此endNumber可能是:endNumber=$((startNumber+3))
正如其他地方所解释的,扩展将不起作用。获取数字序列的替代方法:
for number in $(seq $startNumber $endNumber)
do
echo $number
done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
571 次 |
| 最近记录: |