Как отмечалось ранее, установка переменных bash не допускает пробелов между именем переменной на LHS и значением переменной на RHS знака '='.
awk может сделать все и избежать «awk» дополнительного дополнительного «grep». Использование printf awk заключается в том, чтобы не добавлять ненужную «\ n» в строку, которая давала бы подключаемые программы perl-ish matcher. Расширение переменной/параметра для вашего случая в баш не имеет этой проблемы, так как одна из этих работ:
variable=$(ps -ef | awk '/port 10 \-/ {print $12}')
variable=`ps -ef | awk '/port 10 \-/ {print $12}'`
«-» INT шаблон AWK запись соответствия устраняет необходимость удаления самого AWK из поиска Результаты.
так что же ваш выход, когда вы выполнили этот сценарий оболочки? – wens
Проблема не совсем ясна. Какая ошибка вы получаете? Что такое строка из 'ps -ef' и что вы ожидаете от переменной $? (если вы не можете предоставить реальные данные, затем создайте дезинфицированный пример, который показывает проблему вместо этого.) – NiKiZe
Проблема: переменная не отображается в инструкции printf. Конечная цель: $ 12 соответствует серийному номеру, который выполняется с этим процессом. Я хочу сохранить этот параметр в переменной, чтобы я мог работать с ним. – Jeremy