Я пытаюсь получить выходные данные команды ps для вывода в файл, а затем использовать этот файл для заполнения списка рассылки. Пока что у меня проблемы.
eval "ps -o pid,command">/tmp/process$$
more /tmp/process$$
sed -e '1d' /tmp/process$$ > /tmp/process2$$
while IFS= read -r pid command
do
msgboxlist="$msgboxlist" $($pid) $($command) "off"
done</tmp/process2$$
height=`wc -l "/tmp/process$$" | awk '{print $1}'`
width=`wc --max-line-length "/tmp/process$$" | awk '{print $1}'`
echo $height $width
dialog \
--title "Directory Listing" \
--radiolist "Select process to terminate" "$msgboxlist" $(($height+7)) $(($width+4))
Пока что чтение не только не разбивает столбцы на 2 переменные ($pid
- это целая строка, а $command
- пустое), но когда я пытаюсь запустить это, скрипт пытается запустить строку как команда. Например:
+ read -r pid command
++ 7934 bash -x assessment.ba
assessment.ba: line 322: 7934: command not found
+ msgboxlist=
+ off
assessment.ba: line 322: off: command not found
По сути, я понятия не имею, куда я должен помещать кавычки, двойные кавычки и обратную косую черту. Это сводит меня с ума.
tl; dr Сохранение команды в переменную без ее запуска, как?