我有一个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,但我想学习这种方式,因为它可以帮助我在其他情况下。
如果我正确理解你,你只需要做(对不起,如果我错过了你的观点):
原文链接:https://www.f2er.com/bash/392336.html#!/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.