shell命令列參數用法簡介_linux shell

來源:互聯網
上載者:User

一個shell指令碼,它本身的命令參數是什麼樣呢?

首先 ,shell指令碼編程和python等指令碼編程一樣可以使用參數;
其次 ,shell參數分為位置參數和內部參數;

其中,位置參數 :是由系統提供的參數,就是我們一般說的某個數組的第1,2,3...個元素;可以採用$i的形式獲得某個參數,顯然$0就是程式本身,$1就是第一個參數; 這裡需要注意的是,即便你以sh xxx.sh 來執行指令碼,$0仍然是xxx.sh ,而不是sh !這一點和我們的perl  python 都是一致的

內部參數 :

複製代碼 代碼如下:

$0 ----- 當前程式的名稱,實際上是一個內部參數,不同於$1,$2....因為它必須有!
$# ---- 傳遞給程式的總的參數數目,也就是那個傳說中的數組大小
$? ---- 上一個代碼或者shell程式在shell中退出的情況,如果正常退出則返回0,反之為非0值。
$* ---- 傳遞給程式的所有參數組成的字串。
$@---- 以"參數1" "參數2" ... 形式儲存所有參數
$$ ---- 本程式的(進程id號)pid
$! ---- 上一個命令的pid

如此以來,即便用shell,也可以寫出功能強大、互動友好的指令碼程式。

最後,附註一下python執行系統命令的兩種不同方式:
os.system(cmd) :直接一個或者一組系統命令cmd;不返回執行輸出即結果;如果是在python的命令列下執行,則輸出被直接輸出。
比如: os.system('ls -l')

os.open(cmd[, mode='r' [, bufsize]]) :文檔的注釋是從cmd開啟一個pipe,或者開啟一個pipe到cmd,並且返回輸出為一個file對象!
比如: t = os.popen('ls *.gff').readlines() ; print t

小結,結合以上兩個部分的內容,便可以靈活處理python指令碼和shell的互動了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.