shell 腳本 變量 獲取程序輸出結果異常分析

#! /bin/bash
pid=$(pgrep hello)
echo ${pid}

腳本名稱是 hello_test.sh


當hello進程存在時,總是返回兩個值

當hello進程不存在時,返回值並不爲空,總是返回一個值,多次運行,返回的值並不固定


當然,以上都不是期望的結果。

爲什麼不存在時,也會返回呢,並且返回值不一樣,記得好像有一個內部變量記得上次shell進程的pid,

應該是這樣。


經人提醒,腳本是不是也是hello.sh,終於恍然醒悟,腳本名是hello_test.sh,也包含hello,那返回的值應該是當前腳本的pid

想完測試一下,在原來的腳本中再加上

echo $$

在hello沒運行時,會輸出兩行相同的值,預想得到證明。


算是發現一個小的隱藏甜點吧,呵呵!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章