0
預先感謝您對這個問題的幫助,這個問題看起來很簡單,但我一直無法解決。下面的代碼是的情況自明:Bash變量在複合評估中不起作用
#INPUTS
PID=8255
echo PID is $PID
#WORKING REFERENCE (THIS WORSKS!)
GPID=$(ps fxao pid,ppid,pgid,comm |awk '$1 == "8255"'| awk '{print $3}')
echo GPID is $GPID
#TAKE 1 (DOES NOT WORK)
GPID1=$(ps fxao pid,ppid,pgid,comm |awk '$1 == "$PID"'| awk '{print $3}')
echo GPID1 is $GPID1
#TAKE 2 (DOES NOT WORK)
GPID2=$(ps fxao pid,ppid,pgid,comm |awk '$1 == "$($PID)"'| awk '{print $3}')
echo GPID2 is $GPID2
執行的輸出:
PID is 8255
GPID is 8251
GPID1 is
GPID2 is
因爲單引號中沒有插值! – HuStmpHrrr
感謝您的回答Marc。根據你的建議,我剛剛嘗試並返回:awk:cmd。行:1:警告:轉義序列'\ $'視爲普通的'$'。結果如下:-( –
告訴你一個竅門,如果你對你的腳本正在做什麼感到困惑,把'set -x'放在上面,如果你想把它關掉,就把'set + x'設置爲 – HuStmpHrrr