Ho un comando memorizzato in una variabile. Facciamo finta che la variabile $iabbia il valore:
cat -nT index.php |grep 'someregex'
Quando provo a eseguire la variabile sopra digitandola, $inon riesce perché la shell tenta di eseguire l'intera variabile come un comando. Ho anche provato a usare eval($i)e inserire i $ibacktick.
Come posso fare eseguire la shell $icome se fosse un comando? E perché non funziona come.
$i='echo hi'; $i
È perché ho dovuto fare una specie di hacking tra virgolette singole? (Perché non puoi nidificarli.) Attualmente la mia soluzione è
echo $i > /foo; . /foo
Ma non voglio creare un file solo per questo, ma solo per cancellarlo in seguito.
Quello che intendo con "Ho hackerato tra virgolette singole è che ho fatto:
$i='cat index.php | grep -P '"'"'MYREGEXHERE'"'"