加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读