使用readonly命令可以將變數定義為唯讀變數,唯讀變數的值不允許被修改。
#!/bin/bash
var1=1111
echo
"$var1"
#1111
var1=2222
echo
"$var1"
#2222
readonly var1
var1=3333 #var1: readonly variable
echo
"$var1"
#2222
使用 unset 命令可以刪除變數,刪除後的變數不能再次使用。(不可以刪除唯讀變數)
#!/bin/bash
var1=1111
readonly var2=2222
echo
"$var1"
#1111
echo
"$var2"
#2222
unset var1
unset var2 #cannot unset: readonly variable
echo
"$var1"
#輸出為空
echo
"$var2"
#2222
變數
含義$0
當前指令碼的檔名
$n傳遞給指令碼或函式的引數。n 是乙個數字,表示第幾個引數。例如,第乙個引數是$1,第二個引數是$2。
$#傳遞給指令碼或函式的引數個數。
$*傳遞給指令碼或函式的所有引數。
$@傳遞給指令碼或函式的所有引數。被雙引號(" ")包含時,與 $* 稍有不同,下面將會講到。
$?上個命令的退出狀態,或函式的返回值。
$$當前shell程序id。對於 shell 指令碼,就是這些指令碼所在的程序id。
$* 和 $@ 都表示傳遞給函式或指令碼的所有引數,不被雙引號(" 「)包含時,都以」$1" 「2"…
"2" … "
2"…"
n」 的形式輸出所有引數。
但是當它們被雙引號(" 「)包含時,」$*" 會將所有的引數作為乙個整體,以"$1 $2 … n"的
形式輸出
所有引數
;"
n"的形式輸出所有引數;"
n"的形式輸
出所有參
數;"@" 會將各個引數分開,以"$1" 「2"…
"2" … "
2"…"
n」 的形式輸出所有引數。
shell變數的高階操作例項
shell變數的高階操作例項 1 字串切片 作用 切取變數中指定長度的字串,並指定起始位置。1 2 3 name michael hu echo cha 2 計算字串的長度 格式1 格式2 expr length variable 1 2 3 4 root python echo 10 root p...
變數 shell變數( )
變數型別 執行shell時,會同時存在三種變數 a 區域性變數 在指令碼或命令中定義,僅在當前shell例項中有效,其他shell啟動的程式不能訪問區域性變數。b 環境變數 所有的程式,包括shell啟動的程式,都能訪問環境變數,有些程式需要環境變數來保證其正常執行。必要時shell指令碼也可以定義...
shell高階變數用法 變數替換與字串處理
s toc 或者expr length string string有空格,則必須加雙引號 val1 hello world echo expr index val1 woh w 7,o 5,h 1,所以返回1 1 hadoop hadoop000 learn val1 hello world had...