一、变量


Shell 中的变量必须以字母或下划线开头,后面可以跟数字、字母和下划线。
(变量严格区分大小写,比如:Donald 和 donald 不同)

(1)变量赋值

定义变量: 变量名=变量值

(变量名和变量值之间用等号紧紧相连,之间没有任何空格)

【Linux学习】之 Shell(变量、数组)_变量

Tips:

如果变量值引用的是其他变量,则必须使用双引号。因为单引号会阻止Shell解释特殊字符$

【Linux学习】之 Shell(变量、数组)_赋值_02

name=Donald
name="Donald"

// 当变量中有空格时必须用引号括起,否则会出现错误
name="Hi Donald"

【Linux学习】之 Shell(变量、数组)_linux_03


(2)变量取值

echo $name

// 严谨写法
echo ${name}

echo ${name}

【Linux学习】之 Shell(变量、数组)_数组_04


(3)取消变量

取消变量是指变量从内存中释放。

name=Donald
echo $name

// 取消变量
unset name
echo $name

【Linux学习】之 Shell(变量、数组)_赋值_05

// 撤销函数
unset_function() {
echo "Hello World"
}

unset_function

unset unset_function

unset_function

【Linux学习】之 Shell(变量、数组)_变量_06


(4)特殊变量

① 脚本或命令返回值:$?

用于判断一些命令是否执行成功。

【Linux学习】之 Shell(变量、数组)_变量_07

② 位置参数

【Linux学习】之 Shell(变量、数组)_变量_08


二、参数


(1)数组定义

// ①
declare -a Array
Array[0]=0
Array[1]=1


// ②
declare -a Name=('john' 'sue')
Name[2]='wang'

// ③
Name=('john' 'sue')

// ④跳号赋值
Score=([3]=3 [5]=5 [7]=7)

【Linux学习】之 Shell(变量、数组)_linux_09


【Linux学习】之 Shell(变量、数组)_shell_10


(2)数组操作

// 取单个值
echo ${Array[0]}

// 取出所有元素的值
echo ${Array[@]}
echo ${Array[*]}

// 取出第一、第二个元素
echo ${Array[@]:1:2}
echo ${Array[@]:0:5}

【Linux学习】之 Shell(变量、数组)_赋值_11

// 数组长度
echo ${#Array[@]}
echo ${#Array[*]}

// 若取的是某个元素,元素是字符串,则取得字符串长度
echo ${#Array[2]}

【Linux学习】之 Shell(变量、数组)_变量_12

// 连接数组
Conn=(${Array[@]} ${Name[@]})
echo ${Conn[@]}

【Linux学习】之 Shell(变量、数组)_变量_13

// 取消数组或元素
unset Array[1]
echo ${Array[@]}

unset Array
echo ${Array[@]}

【Linux学习】之 Shell(变量、数组)_linux_14