当前一个命令完成时,我会执行一个bash指令。更清楚:
for i in $(seq 0 3)
do
...elaboration
eval $command
done
命令是包含指令(./binary_file标志)的变量。 在循环命令中更改。当eval $命令(二进制文件的执行)终止执行时,我会进入循环的下一次迭代。即我会使eval $命令“阻塞”。我怎样才能实现这种行为?或者这是默认行为吗?
eval $命令执行的二进制文件来自C ++源代码(这可能是不相关的,我不知道)。 (我在Unix上) 提前谢谢!
答案 0 :(得分:0)
这个怎么样(最初的美元符号是bash提示符):
$ command="who am I"
$ for i in {1..10} ; do ${command} ; done
mauro ttys000 Jun 10 14:08
mauro ttys000 Jun 10 14:08
mauro ttys000 Jun 10 14:08
mauro ttys000 Jun 10 14:08
mauro ttys000 Jun 10 14:08
mauro ttys000 Jun 10 14:08
mauro ttys000 Jun 10 14:08
mauro ttys000 Jun 10 14:08
mauro ttys000 Jun 10 14:08
mauro ttys000 Jun 10 14:08
答案 1 :(得分:0)
默认情况下,它会阻止(使用&允许后台执行,没有它的bat默认为阻止)。然而,eval是必要的,否则代码将无法工作。另一种不使用具有安全性问题的eval的可能性是:
"${name_exe}" >"${file1_name}.txt" 2>"${file2_name}.txt"
(问题上面的命令是
"${name_exe} > ${file1_name}.txt 2> ${file2_name}.txt"
)