У меня есть команда, хранящаяся в переменной. Давайте представим, что переменная $i
имеет значение:
cat -nT index.php |grep 'someregex'
Когда я пытаюсь выполнить указанную выше переменную, набирая $i
это терпит неудачу, потому что оболочка пытается выполнить всю переменную как одну команду. Я также попытался использовать eval($i)
и положить $i
в кавычки.
Как заставить оболочку выполнить $i
как если бы это была команда? И почему это не работает так же, как.
$i='echo hi'; $i
Это потому, что мне пришлось взламывать одинарные кавычки? (Потому что вы не можете их вложить.) В настоящее время мое решение
echo $i > /foo; . /foo
Но я не хочу создавать файл только для этого, чтобы потом удалить его.
Что я имею в виду под "я взломал в одиночных кавычках, я сделал:
$i='cat index.php | grep -P '"'"'MYREGEXHERE'"'"