Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.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 使用bash脚本创建文件夹和文件_Linux_Bash - Fatal编程技术网

Linux 使用bash脚本创建文件夹和文件

Linux 使用bash脚本创建文件夹和文件,linux,bash,Linux,Bash,我必须创建50个文件夹,每五个文件夹中应有2*2个文件,例如 folder1 . . folder5 - has 2 files in it folder 6 . . folder 10 - has 4 files in it . . folder 15 - has 8 files in it 这是我的密码: #!/bin/bash n=1 declare -i countFolder for (( countFolder = 1; countFolder <= 50; co

我必须创建50个文件夹,每五个文件夹中应有2*2个文件,例如

folder1
.
.
folder5 - has 2 files in it
folder 6
.
.
folder 10 - has 4 files in it 
.
.
folder 15 - has 8 files in it 
这是我的密码:

#!/bin/bash


n=1 
declare -i countFolder

for (( countFolder = 1; countFolder <= 50; countFolder++ )) 
do 
    mkdir Folder$countFolder
done

for (( countFolder = 5; countFolder <= 50; countFolder = countFolder+5 ))
do

    let "n = n * 2"

    for (( f = 0; f < n; f++ )) do
    cd Folder$countFolder && touch File$f.txt
    done
done
#/bin/bash
n=1
声明-i countFolder

对于((countFolder=1;countFolder而言,问题在于您将
cd
放入目录中,但从未
cd
返回

解决此问题的最简单方法是在
cd
周围添加括号。这些括号开始一个子shell,因此
cd
保留在其中:

for (( f = 0; f < n; f++ )) do
  ( cd Folder$countFolder && touch File$f.txt ) 
done

您需要进入目录,创建文件,然后离开。最有效的方法是:

#!/bin/bash


n=1 
declare -i countFolder

for (( countFolder = 1; countFolder <= 50; countFolder++ )) 
do 
    mkdir Folder$countFolder
    ls
done

for (( countFolder = 5; countFolder <= 50; countFolder = countFolder+5 ))
do

    let "n = n * 2"
    cd Folder$countFolder
    for (( f = 0; f < n; f++ )) do
        touch File$f.txt
    done
    cd ..
done
!/bin/bash
n=1
声明-i countFolder

对于((countFolder=1;countFolder为什么这个问题用python标记?或者触摸文件夹$countFolder/File$f.txt
#!/bin/bash


n=1 
declare -i countFolder

for (( countFolder = 1; countFolder <= 50; countFolder++ )) 
do 
    mkdir Folder$countFolder
    ls
done

for (( countFolder = 5; countFolder <= 50; countFolder = countFolder+5 ))
do

    let "n = n * 2"
    cd Folder$countFolder
    for (( f = 0; f < n; f++ )) do
        touch File$f.txt
    done
    cd ..
done