如何在Bash循环中合并两个范围?

4

你好,我搜索了一下,但没有找到答案。可能是因为我使用的术语不正确。

我知道如何循环遍历数字:

for x in {0..9}
do

但是我如何循环遍历数字和字母,就像这样:

for x in {{0..9},{a..z}}
do

它能工作,但似乎有语法错误。


什么样的语法错误?我感觉你的方法没有任何问题。 - rudedude
2个回答

4

试试这个:

for x in {0..9} {a..z}; do

我认为你的方法也是正确的,但如果你遇到任何语法错误,请尝试使用上述格式。


太好了!我的语法错误是第二个右花括号被称为“字面量”。你能告诉我在Bash中何时使用分号吗?我总是感到困惑。如果不允许后续问题,我可以先搜索或打开另一个问题。非常感谢! - user2917478
在Bash中,分号仅仅是一个行分隔符,就像换行一样。在Bash中,do是另一个命令,这就是为什么我使用了分号的原因。我本可以使用换行来表示do,但意思是相同的。 - rudedude
1
感谢您的跟进! - user2917478

0

如果您有超过24个磁盘需要迭代Linux设备,您可以使用以下方法:

for D in {a..z} a{a..z}; do
      ls /dev/sd$D
done

你需要从sda迭代到sdaz。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接