我在嘗試一些非常簡單的事情,並且遇到了很多麻煩。比較在bash中的PID
我有一個bash腳本,我必須爲類執行類似於pstree的類編寫腳本。它爲自己報告pstree。輸出應該是這樣的:
PID
|
PPID
|
.
.
.
|
1
這裏是我到目前爲止的代碼:
ps -ef>tmp1.txt #save ps -ef to a file
pid=$$
echo $pid #print first PID
while [ $pid != "1" ]
do
cat tmp1.txt | while read line #read in ps -ef file line by line
do
tmp=$(echo $line | cut -f2 -d' ') #return only the PID column of ps -ef
if [$pid == $tmp] #compare current PID to temp PID of current line
then
echo "|"
pid=$(echo $line | cut -f3 -d' ') #if they're the same we found the PPID, so save it
echo $pid #and echo it
fi
done
done
如果它的失敗是在比較聲明:
if [$pid == $tmp]
我得到一個未找到錯誤。有任何想法,爲什麼比較不起作用?感謝提前提供任何幫助,如果我能澄清任何事情,請告訴我。
而且你需要'['和']'字符周圍的空格。 –
@凱斯:對,謝謝,我寫得很對,但沒有指出來。 –
好吧,做了這個改變加上我在它後面加了分號。仍然不完全工作,但我正在取得進展。謝謝你們 – Casbar77