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
您希望
0
完成什么?您真的希望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。知道了。我演的那个角色太傻了。谢谢,亲爱的。知道了。我演的那个角色太傻了。谢谢