对于执行存储在变量中的eval命令,使用命令:
???> a="echo -e 'a\nb' | wc -l"
???> eval $a
2
Run Code Online (Sandbox Code Playgroud)
但它如何与timeout命令结合?我试过以下哪个给了我错误的输出:
???> timeout 10 $a
'a
b' | wc -l
Run Code Online (Sandbox Code Playgroud)
以下给出了我的错误:
???> timeout 10 "$a"
timeout: failed to run command `echo -e \'a\\nb\' | wc -l': No such file or directory
???> timeout 10 $(eval $a)
timeout: failed to run command `2': No such file or directory
???> timeout 10 $(eval "$a")
timeout: failed to run command `2': No such file or directory
Run Code Online (Sandbox Code Playgroud)
问题还可以解决:我怎样才能确定以下命令是否正确执行?
timeout 10 "$PROGRAM" "$OPT1" "$OPT2" ...
Run Code Online (Sandbox Code Playgroud)
小智 1
这会起作用
if timeout "$PROGRAM" "$OPT1" "$OPT2" ... ; then
echo Program ran successfully
else
echo Program terminated due to timeout
fi
Run Code Online (Sandbox Code Playgroud)