Bash Script – 将可变内容作为要运行的命令

前端之家收集整理的这篇文章主要介绍了Bash Script – 将可变内容作为要运行的命令前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个Perl脚本,给我一个定义的列表随机数对应于一个文件的行。我想做的下一步是使用sed从文件提取这些行。
#!/bin/bash
count=$(cat last_queries.txt | wc -l)
var=$(perl test.pl test2 $count)

变量var返回一个输出,如:cat last_queries.txt | sed -n’12p; 500p; 700p’。问题是我不能运行这最后一个命令。我试图与$ var但输出是不正确的(如果我手动运行命令,它工作正常,所以没有问题)。什么是正确的方法这样做?

P.S:当然我可以做所有的工作在Perl,但我想学习这种方式,因为它可以帮助我在其他情况下。

如果我正确理解你,你只需要做(对不起,如果我错过了你的观点):
#!/bin/bash
count=$(cat last_queries.txt | wc -l)
$(perl test.pl test2 $count)

但是如果你想以后调用你的perl命令,这就是为什么你想把它分配给一个变量,然后:

#!/bin/bash
count=$(cat last_queries.txt | wc -l)
var="perl test.pl test2 $count" # you need double quotes to get your $count value substituted.

...stuff...

eval $var

按照bash的帮助:

~$ help eval
eval: eval [arg ...]
    Execute arguments as a shell command.

    Combine ARGs into a single string,use the result as input to the shell,and execute the resulting commands.

    Exit Status:
    Returns exit status of command or success if command is null.
原文链接:https://www.f2er.com/bash/392336.html

猜你在找的Bash相关文章