Bash Script – 将可变内容作为要运行的命令
发布时间:2020-12-15 16:47:31 所属栏目:安全 来源:网络整理
导读:我有一个Perl脚本,给我一个定义的列表随机数对应于一个文件的行。我想做的下一步是使用sed从文件中提取这些行。 #!/bin/bashcount=$(cat last_queries.txt | wc -l)var=$(perl test.pl test2 $count) 变量var返回一个输出,如:cat last_queries.txt | sed
我有一个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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |