我有一个存储在变量中的命令。让我们假设变量$i
具有值:
cat -nT index.php |grep 'someregex'
当我尝试通过键入来执行上述变量时,$i
它失败了,因为外壳程序尝试将整个变量作为一个命令执行。我使用也尝试eval($i)
并把$i
在反引号。
如何使Shell $i
像命令一样执行?而且为什么它不能与之相同。
$i='echo hi'; $i
是因为我不得不在单引号中弄乱吗?(因为您不能嵌套它们。)目前,我的解决方案是
echo $i > /foo; . /foo
但是我不想为此创建一个文件,而只是以后删除它。
我的意思是“我砍了单引号是:
$i='cat index.php | grep -P '"'"'MYREGEXHERE'"'"