У меня есть команда, хранящаяся в переменной. Давайте представим, что переменная $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'"'"