私は何か非常に簡単にしようとしています。私はそれに多くの問題を抱えています。PIDをbashで比較する
私はpstreeに似た機能を実行するクラスのために書かなければならないbashスクリプトを持っています。それは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]
私が見つからないエラーが発生します。比較がうまくいかない理由があれば教えてください。事前に助けていただきありがとうございます。私が何かを明確にすることができれば教えてください。
そして '['と ']'文字の周囲にスペースが必要です。 –
@Keith:そうですね、ありがとう、私はそれを正しく書いたが、それを指摘しなかった。 –
変更を加えて、それの後ろにセミコロンを追加しました。まだ完全には機能しませんが、私は進歩しています。ありがとうございました – Casbar77