C++ Bash代码,仅当当前可执行文件已完成运行时才在循环中运行该可执行文件

C++ Bash代码,仅当当前可执行文件已完成运行时才在循环中运行该可执行文件,c++,bash,shell,C++,Bash,Shell,当上一个命令完成时,我将执行bash指令。更清楚地说: for i in $(seq 0 3) do ...elaboration eval $command done 命令是包含指令(./binary\u文件标志)的变量。 循环中的命令更改。当eval$命令(二进制文件的执行)终止执行时,我将进入循环的下一次迭代。也就是说,我将eval$命令设置为“阻塞”。我如何实现这种行为?或者这是默认行为 < > EVA$命令执行的二进制文件是从C++源代码(这可能是激怒,我不知道)。(我使用Unix

当上一个命令完成时,我将执行bash指令。更清楚地说:

for i in $(seq 0 3)
do 
...elaboration
eval $command
done
命令是包含指令(./binary\u文件标志)的变量。 循环中的命令更改。当eval$命令(二进制文件的执行)终止执行时,我将进入循环的下一次迭代。也就是说,我将eval$命令设置为“阻塞”。我如何实现这种行为?或者这是默认行为

< > EVA$命令执行的二进制文件是从C++源代码(这可能是激怒,我不知道)。(我使用Unix) 提前谢谢

这怎么办(最初的美元符号是bash提示符):

默认情况下,它会阻塞(使用&youpermittedbackground执行,默认情况下不使用它的bat阻塞)。然而,评估是必要的,否则代码无法工作。另一种不使用eval的可能性是存在安全问题:

"${name_exe}" >"${file1_name}.txt" 2>"${file2_name}.txt"
(问题中的上述命令是

"${name_exe} > ${file1_name}.txt 2> ${file2_name}.txt"

)

您是否尝试查看结果?否,因为此时我正在服务器上复制项目,我将通过ssh(从远程)访问该服务器,复制项目时,.sh将在服务器上运行。您应该在询问之前先尝试一下。您可以用
sleep 10
或其他内容代替您的命令,以获取占用时间的内容,以便查看其行为。默认情况下,它会阻塞。您面临什么问题?为什么要使用
eval
运行
$command
?是的,您是对的。评估是不必要的。我更新了问题,出现了一个新问题,更正了之前的一条评论。评估是必要的。看看我的答案
"${name_exe} > ${file1_name}.txt 2> ${file2_name}.txt"