要执行存储在变量中的命令,请使用eval
命令:
└──> a="echo -e 'a\nb' | wc -l"
└──> eval $a
2
但是如何将其与timeout
命令结合使用呢?我尝试了下面的方法,它给出了错误的输出:
└──> timeout 10 $a
'a
b' | wc -l
下面的代码会给我带来错误:
└──> 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
问题也可能是:我如何确保下面的命令被正确执行?
timeout 10 "$PROGRAM" "$OPT1" "$OPT2" ...
发布于 2019-02-11 11:40:56
简单:
a="echo -e 'a\nb' | wc -l"
eval timeout 10 $a
输出:
2
发布于 2015-05-13 03:38:25
这将会起作用
if timeout "$PROGRAM" "$OPT1" "$OPT2" ... ; then
echo Program ran successfully
else
echo Program terminated due to timeout
fi
发布于 2016-02-11 20:16:11
如果它是关于将命令保存在变量中,这将会起作用,尽管我不知道这是否是一种“适当的bash方式”:
command.sh:
#!/bin/bash
echo -e 'a\nb' | wc -l
run.sh:
#!/bin/bash
a="command.sh"
timeout 10 ./$a
https://stackoverflow.com/questions/30188547
复制相似问题