Shell中一些特殊的變數

2021-09-29 15:35:14 字數 1522 閱讀 4234

$0

獲取當前執行shell的指令碼名。

$n獲取當前shell第n個引數,當大於9時,則用花括號括起來,例如$,接的引數一空格隔開

$#獲取當前執行shell指令碼後面接的引數的個數

$*獲取當前shell指令碼所有傳參的引數。不加引號和@相同

。如果加

上引號,

如"

@相同。如果加上引號,如"

@相同。如果

加上引號

,如"*",則表示將所有的引數視為單個字串,相當於"$1$2$3$4"

$@獲取當前shell指令碼所有傳參的引數。不加引號和$*相同。加上引號,則把所有的引數當作不同的單利字串,相當於"$1"、"$2"。

區別:當加雙引號時,兩者有區別,當不加雙引號時,二者無區別

以下通過例子進行說明:

[root@localhost testshell]

# cat test02.sh

#!/bin/sh

set--

"you are" a man

#獲取指令碼路徑

echo `dirname $0`

#獲取指令碼名

echo `basename $0`

#輸出個數

echo

"字串的個數為:$#"

#分別列印引數

echo

"第乙個值:"

$1echo

"第二個值:"

$2echo

"第三個值:"

$3# 測試 $* 和 $@ 不加引號

echo

"測試結果如下:"

for i in $*

doecho

$idone

echo

""echo

"測試結果如下:"

for i in $@

doecho

$idone

# 測試 $* 和 $@ 加引號

echo

"測試結果如下:"

for i in "$*"

doecho

$idone

echo

""echo

"測試結果如下:"

for i in "$@"

doecho

$idone

執行輸出結果如下:

[root@localhost testshell]

# sh /testshell/test02.sh

/testshell

test02.sh

字串的個數為:3

第乙個值: you are

第二個值:a

第三個值:man

測試結果如下:

youare

aman

測試結果如下:

youare

aman

測試結果如下:

you are a man

測試結果如下:

you are

aman

shell指令碼中一些特殊變數

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

Shell中的一些特殊變數

shell中的一些特殊變數 shell中的一些特殊變數 shell中的特殊變數 0 shell或shell指令碼的名字 以一對雙引號給出引數列表 將各個引數分別加雙引號返回 引數的個數 代表上乙個命令的最後乙個引數 代表所在命令的pid 代表最後執行的後台命令的pid 代表上乙個命令執行後的退出狀態...

shell指令碼中一些特殊符號

1 大括號 用法一 萬用字元擴充套件 eg ls my s 這條命令相當於如下命令的組合 ls my fingers my toes eg mkdir 我們將得到 usera home,usera bin,usera data,userb home,userb bin,userb data,user...