【发布时间】:2016-10-14 13:29:07
【问题描述】:
我有一个像这样模块化的应用程序:
`APP
PART1
part1.sh
PART2
part2.o
PART3
part3.o`
part1.o 的输入文件生成一个输出文件,该文件又是 part2.o 的输入文件,part2.o 生成另一个文件,该文件是 part3.o 的输入,最后是整个应用程序的输出。
我打算有一个 run.sh 文件,它应该为子应用程序(第 1 部分)获取第一个输入文件,依此类推触发其余的子应用程序并将最后一个输出存储在文件名中,用命令提到。像这样的:
run.sh input.txt output.txt
目前我的外壳是这样的:
OUTPUT1="output1.txt"
OUTPUT2="output2.txt"
./PART1/part1.sh $0 > OUTPUT1 &&
./PART2/part2.o < OUTPUT1 > OUTPUT2 &&
./PART3/part3.o < OUTPUT2 > $1
目前,如果我运行此代码,我会无限期地得到以下输出:
+ ./run.sh
+ ./run.sh
+ ./run.sh
.
.
.
.
谁能帮我解决这个问题?我究竟做错了什么?
【问题讨论】:
-
您希望
< $0完成什么?你真的要part1.sh处理文件run.sh的内容吗? -
@John1024 我明白了。我已经修复了该部分,但它仍然会导致相同的行为。我想从
run.sh触发part1.sh(反过来)。 -
您希望
./PART1/part1.sh $0完成什么?请解释您认为$0的含义。 -
@John1024 我以为我指的是
input.txt和$0