Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何将循环参数插入字符串的中间?_Linux_Bash_Unix - Fatal编程技术网

Linux 如何将循环参数插入字符串的中间?

Linux 如何将循环参数插入字符串的中间?,linux,bash,unix,Linux,Bash,Unix,我试图使用bash脚本访问不同目录中的多个文件。目录是编号的,但是这些数字出现在目录名的中间, e、 g.Historogram1数据/Historogram2数据/ 如果我使用for循环读取这些目录,它将不起作用: #bash script for i in {1..100} do cd histogram$idata/ ......code........ cd .. done 用花括号括住变量,如下所示: cd histogram${i}data

我试图使用bash脚本访问不同目录中的多个文件。目录是编号的,但是这些数字出现在目录名的中间,

e、 g.Historogram1数据/Historogram2数据/

如果我使用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

代码中发生的事情是bash试图解释变量
$idata
,这显然不是您想要的

可以使用花括号分隔参数名称:

cd "histogram${i}data/"
顺便说一句,我建议将循环体包装在括号中,以便它在子shell中运行。这使得跟踪当前目录变得更容易,因为
cd
仅在子shell中有效。因此:

for i in {1..100} do 
  (
    cd "histogram${i}data/"
    ......code........
  )
 done

可以使用花括号分隔参数名称:

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
bash脚本:

for i in {1..100}
do 
    cd histogram${i}data/
    ......code........
    cd ..
done