bash中的序列表达式
我习惯于使用bash的以下特性:bash中的序列表达式,bash,Bash,我习惯于使用bash的以下特性: for i in ${1..23} ; do echo $i ; done 这不是一概而论。例如,将23替换为甚至$p都不起作用。正如文档所说,这是一个纯粹的语法特性 你会用什么来代替这个 注意:当然,这可以使用while和一个辅助变量来完成,但这不是我想要的,即使它有效。事实上,我没有回答这个问题。如果您有可用的命令,该命令也可以执行类似的操作。您的示例可能是: p=23 for i in `seq 1 $p` do echo $i done 如果
for i in ${1..23} ; do echo $i ; done
这不是一概而论。例如,将23
替换为甚至$p
都不起作用。正如文档所说,这是一个纯粹的语法特性
你会用什么来代替这个
注意:当然,这可以使用while和一个辅助变量来完成,但这不是我想要的,即使它有效。事实上,我没有回答这个问题。如果您有可用的命令,该命令也可以执行类似的操作。您的示例可能是:
p=23
for i in `seq 1 $p`
do
echo $i
done
如果可用,该命令也可以执行类似的操作。您的示例可能是:
p=23
for i in `seq 1 $p`
do
echo $i
done
在linux上,有一个
seq
命令(不幸的是,它在OSX中丢失)
OSX解决方法:在linux上,有一个
seq
命令(不幸的是,OSX中缺少该命令)
OSX解决方案:您可以使用seq工具来实现效果,我不知道这是否适合您的用例
~$ P=3 && for i in `seq 1 $P`; do echo $i; done
1
2
3
还是利特的建议
~$ P=3 && for ((i=1;i<=$P;i++)); do echo $i; done
1
2
3
~$P=3&&for((i=1;i您可以使用seq工具来实现效果,我不知道这是否适合您的用例
~$ P=3 && for i in `seq 1 $P`; do echo $i; done
1
2
3
还是利特的建议
~$ P=3 && for ((i=1;i<=$P;i++)); do echo $i; done
1
2
3
~$P=3&&for((i=1;我想知道((i=1;我想知道,我没有完整的)注释(只是为了一个人)。不,我不知道,谢谢。顺便说一句,你应该在I和p前面加上“$”。Dup:稍有不同:seq只对边界求值一次;而算术形式在每次迭代时对其求值。@gzog,bash允许在算术表达式中省略$
。你知道((I=1;我想知道,我没有“full”)的吗评论(仅限个人)。不,我不知道,谢谢。顺便说一句,你应该在I和p前面加上“$”。Dup:稍有不同:seq只对边界求值一次;而算术形式在每次迭代时对其求值。@gzog,bash允许在算术表达式中省略$
。我正在寻找一个以bash为中心的功能,这就是为什么litb更适合我的应用“用例”。seq也相当整洁。我正在寻找一个以bash为中心的特性,这就是为什么litb更适合我的“用例”。seq也相当整洁。