나는 아주 간단한 것을 시도하고 있으며, 많은 문제가있다.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