2016-11-18 5 views
0

Почему эта работа в командной строке:разборе в командной строке работает, но не в сценарии оболочки

redis-cli info | grep instantaneous_ops_per_sec | cut -d : -f 2 

... но не работает, когда я задаю, что к переменной внутри скрипта? например,

num=`redis-cli info` | grep instantaneous_ops_per_sec | cut -d : -f 2 

Relatedly, почему назначение сырого выхода redis-cli info к переменной оболочке, а затем повторяя это приводит к искаженной версии REDIS-кли выхода?

ответ

1

При захвате переменной следует поместить всю цепочку команд в субоболочке, а не только начальная часть:

num=$(redis-cli info | grep instantaneous_ops_per_sec | cut -d : -f 2) 

Также лучше использовать $(), а не унаследованные обратных кавычек.

+0

Клянусь, я попробовал это. : -/ Почему это «cat» -файл файла в переменную оболочки, а затем повторение этого файла приводит к искаженной версии этого файла? – rivenmyst137

+0

@ rivenmyst137 Звучит как [этот выпуск] (http://stackoverflow.com/questions/29378566/i-just-assigned-a-variable-but-echo-variable-shows-something-else) –

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