shell 相關變數

2021-10-24 02:18:22 字數 1207 閱讀 8904

$0

當前指令碼的檔名。

$n(n≥1)

傳遞給指令碼或函式的引數。n 是乙個數字,表示第幾個引數。例如,第乙個引數是 $1,第二個引數是 $2。n不能為變數,即使變數值為0到n

$#傳遞給指令碼或函式的引數個數。

$*傳遞給指令碼或函式的所有引數。

$@傳遞給指令碼或函式的所有引數。當被雙引號" "包含時,$@ 與 $* 稍有不同

$?上個命令的退出狀態,或函式的返回值

$$當前 shell 程序 id。對於 shell 指令碼,就是這些指令碼所在的程序 id。

一、$?:

命令返回值:$?一般情況下,大部分命令執行成功會返回 0,失敗返回 1

函式返回值:

#!/bin/bash

#得到兩個數相加的和

function add(){

return `expr $1 + $2`

add 23 50 #呼叫函式

echo $? #獲取函式返回值

執行結果:

73二、$* 和 $@的區別:

當 $* 和 $@ 不被雙引號" "包圍時,它們之間沒有任何區別,都是將接收到的每個引數看做乙份資料,彼此之間以空格來分隔。

但是當它們被雙引號" "包含時,就會有區別了:

例:[root@localhost b21430]# cat xx.sh

#!/bin/bash

i=0j=0

echo "print each param from \"\$*\""

for var in "$*"

do((i++))

echo "$var, $i"

done

echo "print each param from \"\$@\""

for var in "$@"

do((j++))

echo "$var, $j"

done

[root@localhost b21430]# bash xx.sh a b c d

print each param from "$*"

a b c d, 1

print each param from "$@"

a, 1

b, 2

c, 3

d, 4

shell變數相關記錄

形式說明 變數本來的值 截斷變數m n 如果變數 var 為空或已被刪除 unset 那麼返回 word,但不改變 var 的值。如果變數 var 為空或已被刪除 unset 那麼返回 word,並將 var 的值設定為 word。如果變數 var 為空或已被刪除 unset 那麼將訊息 messa...

shell變數相關知識

一 幾個常用命令 1.set 輸出所有變數,包含全域性變數和區域性變數 2.env 只顯示全域性變數 3.declare 輸出所有的變數,函式,整數和已經匯出的變數 4.unset 消除本地變數和環境變數 5.source etc profile 載入環境變數,使環境變數生效 二 普通變數定義賦值有...

shell變數的相關操作 1

擴充套件變數 如果變數parameter沒被宣告,那麼就使用預設值.如果變數parameter沒被設定,那麼就使用預設值.echo 前面沒有申明和設定 username0變數,所以這裡顯示為空 echo 變數沒有被申明,就使用預設值,whoami命令的結果是b b是當前使用者名稱 b echo 變數...