Bash 如何使用shell触发多个相关程序?

Bash 如何使用shell触发多个相关程序?,bash,shell,Bash,Shell,我有一个模块化的应用程序,如下所示: `APP PART1 part1.sh PART2 part2.o PART3 part3.o` OUTPUT1="output1.txt" OUTPUT2="output2.txt" ./PART1/part1.sh $0 > OUTPUT1 && ./PART2/part2.o < OUTPUT1 > OUTPUT2 && ./PART

我有一个模块化的应用程序,如下所示:

`APP
    PART1
       part1.sh
    PART2
       part2.o
    PART3
       part3.o`
OUTPUT1="output1.txt"
OUTPUT2="output2.txt"
./PART1/part1.sh  $0 > OUTPUT1 &&
./PART2/part2.o < OUTPUT1 > OUTPUT2 &&
./PART3/part3.o < OUTPUT2 > $1
part1.o的输入文件生成一个输出文件,该文件又是part2.o的输入文件,生成另一个文件,该文件是part3.o的输入文件,最后是整个应用程序的输出文件

我打算创建一个run.sh文件,该文件将获取子应用程序(part1)的第一个输入文件,以此类推,触发其余的子应用程序,并将最后的输出存储在一个文件名中,如命令所述。大概是这样的:

run.sh input.txt output.txt
当前,我的shell如下所示:

`APP
    PART1
       part1.sh
    PART2
       part2.o
    PART3
       part3.o`
OUTPUT1="output1.txt"
OUTPUT2="output2.txt"
./PART1/part1.sh  $0 > OUTPUT1 &&
./PART2/part2.o < OUTPUT1 > OUTPUT2 &&
./PART3/part3.o < OUTPUT2 > $1

有人能帮我吗?我做错了什么

您使用的位置参数不正确

run.sh input.txt output.txt

将使用下面给出的值填充位置参数

$0
=
run.sh

$1
=
input.txt

$2
=
output.txt


您使用的位置参数不正确

run.sh input.txt output.txt

将使用下面给出的值填充位置参数

$0
=
run.sh

$1
=
input.txt

$2
=
output.txt


您希望
完成什么?您真的希望
part1.sh
处理文件
run.sh
的内容吗?@John1024我明白了。我已经修复了那个部分,但它仍然会导致相同的行为。我想从
run.sh
(反过来)触发
part1.sh
。您希望
/part1/part1.sh$0
完成什么?请解释一下你认为
$0
是什么意思。检查一下这个@John1024我以为我指的是
input.txt
$0
你期望
完成什么?您真的希望
part1.sh
处理文件
run.sh
的内容吗?@John1024我明白了。我已经修复了那个部分,但它仍然会导致相同的行为。我想从
run.sh
(反过来)触发
part1.sh
。您希望
/part1/part1.sh$0
完成什么?请解释一下你认为
$0
是什么意思。检查一下这个@John1024我以为我指的是
input.txt
$0
Sweet。知道了。我演的那个角色太傻了。谢谢,亲爱的。知道了。我演的那个角色太傻了。谢谢