我正在尝试使用bash脚本来访问位于不同目录中的多个文件。目录已编号,但数字显示在目录名称的中间
e.g。 histogram1data / histogram2data /
如果我使用for循环来读取这些目录,则它不起作用:
#bash script
for i in {1..100}
do
cd histogram$idata/
......code........
cd ..
done
答案 0 :(得分:8)
用大括号括起变量,如下所示:
cd histogram${i}data
你的代码中发生的事情是bash试图解释变量$idata
,这显然不是你想要的。
答案 1 :(得分:2)
您可以使用花括号来分隔参数名称:
cd "histogram${i}data/"
顺便提一下,我建议将循环体包装在括号中,因此它在子shell中运行。这样可以更容易地跟踪当前目录,因为cd
只会在子shell中生效。所以:
for i in {1..100} do
(
cd "histogram${i}data/"
......code........
)
done
答案 2 :(得分:2)
bash脚本:
for i in {1..100}
do
cd histogram${i}data/
......code........
cd ..
done