我想獲得輸出到ps命令輸出到一個文件,然後使用該文件來填充radiolist。到目前爲止,我遇到了問題。保存命令到一個變量,而不是運行它
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將命令保存到變量中而不運行它,怎麼樣?
[請](http://mywiki.wooledge.org/BashFAQ/048)[考慮](http://mywiki.wooledge.org/ProcessManagement)你在做什麼(http:// www .grymoire.com/Unix的/ Quote.html)。該代碼是可怕的!您可能想在[代碼評論](http://codereview.stackexchange.com/)上發帖。 – l0b0 2012-03-29 15:30:34