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