在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。
{},您不需要任何内容来循环(以空格分隔)列表