shell 指令碼 變數 獲取程式輸出結果異常分析

2021-09-21 05:02:43 字數 575 閱讀 5706

1

2

3

#! /bin/bash

pid=$(pgrep hello)

echo$

指令碼名稱是 hello_test.sh

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

當hello程序不存在時,返回值並不為空,總是返回乙個值,多次執行,返回的值並不固定

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

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

應該是這樣。

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

想完測試一下,在原來的指令碼中再加上

1

echo$$

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

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

linux C程式中獲取shell指令碼輸出

本文使用docbook書寫,您可以在這裡獲得xml 檔案 abstract 本文描述了從linux程式中執行 shell 程式 指令碼 並獲得輸出結果的方法。table of contents 1.前言 2.使用臨時檔案 3.使用匿名管道 4.使用popen 5.小結 unix界有一句名言 一行sh...

linux c程式中獲取shell指令碼輸出

1.前言 unix界有一句名言 一行shell指令碼勝過萬行c程式 雖然這句話有些誇張,但不可否認的是,借助指令碼確實能夠極大的簡化一些程式設計工 作。比如實現乙個ping程式來測試網路的連通性,實現ping函式需要寫上200 300行 為什麼不能直接呼叫系統的ping命令呢?通常在程式 中通過 s...

linux C程式中獲取shell指令碼輸出

本文使用docbook書寫,您可以在這裡獲得xml檔案 abstract 本文描述了從linux程式中執行shell 程式 指令碼 並獲得輸出結果的方法。table of contents 1.前言 2.使用臨時檔案 3.使用匿名管道 4.使用popen 5.小結 unix界有一句名言 一行shel...