2013-05-28 2 views
2

Уверен, что есть простой ответ, но я искал и не мог найти.PHP exec с grep с использованием переменной?

я в основном пытаюсь передать переменную EXEC Grep в файл

так

exec("snmpget -v 2c -c public $host $oid_model | cut -d':' -f4 | sed -e 's/^[ ]*//'", $model); 
exec("grep $model /home/user/test.txt | cut -d':' -f1 | sed -e 's/^[ ]*//'", $new_model); 

при печати мой $ модели я получаю выход, при попытке $ new_model это не делает.

+0

Я надеюсь $ модель не что-то динамически или предоставленный пользователь, в противном случае у вас есть массивная дыра в безопасности и, вероятно, чтобы получить ваш сервер полностью УНИЧТОЖЕН первым человеком, который должен пройти в '; rm -rf/'как значение для модели $. –

+0

no theres не секрет позади него. $ model создается с выходом из snmpget – Luis

ответ

1

Попробуйте процитировать шаблон соответствия в команде Grep:

exec("grep '".$model[0]."' /home/user/test.txt | cut -d':' -f1 | sed -e 's/^[ ]*//'", $new_model); 
+0

Wont work либо, я попробовал «и». Я также видел несколько сообщений, использующих «переменную \ $», которая тоже не работает. Я попытался «$.». « – Luis

+0

Я сделал echo gettype ($ model), говорит массив. Я уверен, что я не могу получить результат от exec grep b/c этого права? hmm. Как исправить. – Luis

+0

Хорошо, это причина. Можете ли вы сбросить значение '$ model 'используя' var_dump ($ model); 'и скажите мне результат. – anubhava

Смежные вопросы