0

我需要编写一个脚本(比如 A),它将在多个目录中运行一个脚本(比如 B)。脚本 B 在一组子目录中运行一个脚本(比如 C)。虽然我编写并成功执行了脚本 B 和 C,但将它们组合起来并编写脚本 A 对我来说似乎有点太难了。

B 的一个例子是

MainDir="/home/kkk/mmm/dir" 
create_stack="${MainDir}/run/create_stack_and_find_seam.rb"
# cd into the working main directory where all the subdirs are present  
for fil_no in $@  
do
  cd ${MainDir}/${fil_no}
  pwd
  # the working script              
  echo ${fil_no}
  ${create_stack} ${fil_no}
done
# Go back to the original starting directory
cd $OLDPWD

上面的脚本(脚本 B)在一组登记 fil_no 的目录中运行 Ruby 脚本“create_stack_and_find_seam.rb”。现在我有几个目录,不同的子目录在各个级别列出了“fil_no”。所以我现在需要在所有目录中执行脚本 B,然后在所有不同的子目录中运行“create_stack_and_find_seam.rb”(即脚本 C)。

4

1 回答 1

0

根据我的评论,如果我们将脚本 B 中的“MainDir”更改为如下所示的参数

MainDir=$1 

然后我们可以将脚本 A 编写为:

#!/bin/bash
ScriptB.sh /home/first/directory
ScriptB.sh /home/second/directory

当然,这意味着更改${MainDir}/run/create_stack_and_find_seam.rbandcd ${MainDir}/${fil_no}部分。如果这些只在一个地方,那么删除 MainDir 并添加一个新变量会有所帮助

于 2013-04-17T08:09:40.720 回答