shell變數高階

2021-10-03 22:33:47 字數 1323 閱讀 4945

使用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...