小编Lea*_*han的帖子

执行存储在变量中的命令

我有一个存储在变量中的命令。让我们假设变量$i具有值:

cat -nT index.php |grep 'someregex'
Run Code Online (Sandbox Code Playgroud)

当我尝试通过键入执行上述变量$i时失败,因为 shell 尝试将整个变量作为一个命令执行。我也尝试使用eval($i)和添加$i反引号。

如何让 shell$i像执行命令一样执行?为什么它的工作方式不一样。

$i='echo hi'; $i
Run Code Online (Sandbox Code Playgroud)

是因为我不得不在单引号中进行某种修改吗?(因为你不能嵌套它们。)目前我的解决方案是

echo $i > /foo;  . /foo
Run Code Online (Sandbox Code Playgroud)

但我不想为此创建一个文件,以后再删除它。

我的意思是“我在单引号中黑了我做了:

$i='cat index.php | grep -P '"'"'MYREGEXHERE'"'"
Run Code Online (Sandbox Code Playgroud)

linux bash shell

11
推荐指数
2
解决办法
3万
查看次数

标签 统计

bash ×1

linux ×1

shell ×1