Shell中的一些特殊變數

2021-05-08 07:19:30 字數 815 閱讀 6600

shell中的一些特殊變數

shell中的一些特殊變數

shell中的特殊變數: $0

shell或shell指令碼的名字 $*

以一對雙引號給出引數列表 $@

將各個引數分別加雙引號返回 $#

引數的個數 $_

代表上乙個命令的最後乙個引數 $$

代表所在命令的pid $!

代表最後執行的後台命令的pid $?

代表上乙個命令執行後的退出狀態

為了區別$*和$@編寫如下test.sh指令碼:

#!/bin/bash

function testargs

testargs "$*"

testargs "$@"

unset -f testargs

在terminal視窗中執行:

xk@linux:~/work> ./test.sh -a -b /home

1 args

3 args

xk@linux:~/work>

這裡有乙個很有意思的問題,如果test.sh為如下的內容:

#!/bin/bash

function testargs

testargs $*

testargs $@

unset -f testargs

再次執行有:

xk@linux:~/work> ./test.sh -a -b /home

3 args

3 args

xk@linux:~/work>

另,這些特殊的shell變數可以和perl中類似的變數作比較,不同哦!

Shell中一些特殊的變數

0 獲取當前執行shell的指令碼名。n獲取當前shell第n個引數,當大於9時,則用花括號括起來,例如 接的引數一空格隔開 獲取當前執行shell指令碼後面接的引數的個數 獲取當前shell指令碼所有傳參的引數。不加引號和 相同 如果加 上引號,如 相同。如果加上引號,如 相同。如果 加上引號 如...

shell指令碼中一些特殊變數

在shell指令碼中,一些常見的特殊變數表示方式還是需要知道的 如下就是一些經常用到的特殊變數表示方法 0 當前指令碼名 1 2.傳入指令碼or函式的引數 大於10需大括號括起來 傳入指令碼or函式的引數個數 列印所有傳入引數 列印所有傳入引數 當傳入引數有雙引號時,是整體輸出,是每個引數輸出 上個...

Shell中的特殊變數

感謝csdn社群 linux系統維護與使用區 板塊熱心朋友們的解答,我搞清楚了shell中特殊符號的使用,現在把總結分享一下 1.傳遞到指令碼的引數個數 2.以乙個單字串顯示所有向指令碼傳遞的引數。與位置變數不同,此選項引數可超過9個 3.當前shell的pid 4.後台執行的最後乙個程序的程序id...