gpt4 book ai didi

Bash 脚本 - 变量内容作为命令运行

转载 作者:行者123 更新时间:2023-11-29 08:38:15 25 4
gpt4 key购买 nike

我有一个 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.

关于Bash 脚本 - 变量内容作为命令运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5998066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com