在bash中,我知道可以编写一个for
循环,其中一些循环控制变量i
在指定的整数上进行迭代。例如,我可以编写一个bash shell脚本来打印1到10之间的整数:
#!/bin/bash
for i in {1..10}
do
echo $i
done
如果我提供字符串列表,是否可以替代地循环访问一个字符串的循环控制变量?例如,假设我有一个fname
代表文件名的字符串。我想为每个文件名调用一组命令。例如,我可能想fname
使用如下命令打印内容:
#!/bin/bash
for fname in {"a.txt", "b.txt", "c.txt"}
do
echo $fname
done
换句话说,在第一次迭代中,fname
应具有值fname="a.txt"
,而在第二次迭代中,fname
应具有值fname="b.txt"
,依此类推。不幸的是,上述语法似乎不太正确。我想获得输出:
a.txt
b.txt
c.txt
但是当我尝试上面的代码时,我得到以下输出:
{a.txt,
b.txt,
c.txt}
您能否帮助我确定正确的语法,以便可以迭代地更改变量的值/内容fname
?感谢您的时间。
@Mat装置取出
—
manatwork 2012年
{}
和所述,
第 另一种方法是删除空格。因此,无论"a.txt" "b.txt" "c.txt"
或{"a.txt","b.txt","c.txt"}
。但是我更喜欢{a..c}.txt
。
{}
,您不需要任何内容来循环(以空格分隔)列表