【发布时间】:2011-12-20 08:06:26
【问题描述】:
我有一个名为 tinkering 的目录,其中包含以下子目录:
saraswati\ and\ durga\ pooja
64\ yogini\ pooja
52\ guruwar\ ke\ tap\ se\ unemployment\ finish
bajrang\ bali\ har\ lete\ ain\ devote\ dukh
bhoot\ bhagane\ ke\ tareke
bacho\ ko\ gussa\ ane\ ka\ karan
durga\ pooja
khatre\ ke\ nishan\ hanth\ mein
saraswati\ and\ durga\ pooja
seb\ chadhane\ se\ ma\ hinnamasta
bhoot\ bhagane\ ke\ tareke
每个子目录都有一个名为 script.sh 的脚本。
我在终端上写了一个脚本:
cd ~/tinkering/;
cd saraswati\ and\ durga\ pooja/;
./script.sh;
cd ..;
cd 64\ yogini\ pooja/;
./script.sh;cd ../;
cd 52\ guruwar\ ke\ tap\ se\ unemployment\ finish/;
./script.sh;cd ../;
cd bajrang\ bali\ har\ lete\ ain\ devote\ dukh/;
./script.sh;cd ../;
cd bhoot\ bhagane\ ke\ tareke/;
./script.sh;cd ..;
cd bacho\ ko\ gussa\ ane\ ka\ karan/;
./script.sh;cd ..;
cd durga\ pooja/;./script.sh;
cd ..;
cd khatre\ ke\ nishan\ hanth\ mein/;./script.sh;
cd ..;cd saraswati\ and\ durga\ pooja/;
./script.sh;cd ..;
cd seb\ chadhane\ se\ ma\ hinnamasta/;
./script.sh;cd ..;
cd bhoot\ bhagane\ ke\ tareke/;
./script.sh;cd ..;
但是这个脚本无法运行。目的不是去每个子目录并输入./script.sh,我能够自动化这个过程。我在上面的代码中犯了什么错误?
编辑 请注意,我在终端上用分号分隔这些命令,而我在父目录中修补所有子目录都有不同的脚本,它正在做不同的工作我想从终端上的父目录调用子目录的所有 shell 脚本。
【问题讨论】:
-
我们不知道“无法运行”是什么意思。
-
绝对。我假设它缺少 shebang 或不可执行,但可能不是这样。
-
另外一个关于设计的问题:所有这些
script.sh文件都是一样的吗,只是你从哪个目录运行它,还是他们做不同的事情? -
@ChrisMorgan by design script.sh 做同样的事情,但所有这些脚本都在修补的子目录中我在目录修补,但是当我在 shell 脚本中编写 cd 时,目录不会改变。