我有一个存储在变量中的命令。让我们假设变量$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'"'"