変数にコマンドを保存しています。変数$i
に値があるとします。
cat -nT index.php |grep 'someregex'
上記の変数を入力$i
して実行しようとすると、シェルが変数全体を1つのコマンドとして実行しようとするため、失敗します。私もバッククォートを使っeval($i)
て入れてみ$i
ました。
$i
コマンドのようにシェルを実行するにはどうすればよいですか?そしてなぜそれは同じように機能しないのですか?
$i='echo hi'; $i
それは私が一重引用符で一種のハックしなければならなかったからですか?(ネストできないため)現在のところ、私の解決策は
echo $i > /foo; . /foo
ただし、このためだけにファイルを作成するのではなく、後で削除するだけです。
「一重引用符でハッキングしたのは、私がしたことです。
$i='cat index.php | grep -P '"'"'MYREGEXHERE'"'"