我以各种顺序迭代数字。我能够以递增的顺序显示它们,即使是这样的步骤:
$ seq --separator="," 1 10
1,2,3,4,5,6,7,8,9,10
$ seq --separator="," 1 2 10
1,3,5,7,9
Run Code Online (Sandbox Code Playgroud)
我也能够以相反的顺序显示它们,既不是连续的也不是逐步的。
$ seq --separator="," 10 1
$ seq --separator="," 10 2 1
Run Code Online (Sandbox Code Playgroud)
上述命令没有输出。
我的外壳详细信息:
$ bash --version
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
Run Code Online (Sandbox Code Playgroud)
让我知道如何以降序显示数字?
我想$var in在 bash 中使用带有范围的 shell 括号扩展。简单地放置{$var1..$var2}不起作用,所以我去了“横向”......
以下工作,但它有点笨拙。
# remove the split files
echo rm foo.{$ext0..$extN} rm-segments > rm-segments
source rm-segments
Run Code Online (Sandbox Code Playgroud)
有没有更“正常”的方式?
以下 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)
我究竟做错了什么?