variable
2024年06月21日
一、认识
在 Shell
编程中,变量是用于存储数据值的名称。
二、声明
2.1 数字
num=10
2.2 数组
通过 ({value1..valueN})
的形式: 直接将 {value1..valueN}
的结果复制给变量
#!/usr/bin/env bash
fileList=({1..10})
echo ${fileList[@]} // 使用 @ 符号可以获取数组中的所有元素
通过 $(seq value1 valueN)
的形式: 将 seq value1 valueN
命令的输出结果捕获,并赋值给变量
fileList=$(seq 1 10)
echo ${fileList[@]} // 使用 @ 符号可以获取数组中的所有元素
通过 (value1 value2 value3 …… valueN)
的形式: 直接将 (value1 value2 value3 …… valueN)
的结果复制给变量
fileList=(1 2 3 4 5 6 7 8 9 10)
echo ${fileList[@]} // 使用 @ 符号可以获取数组中的所有元素
2.3 字符串
str="this is s string"
2.4 内置变量
$0
: 表示脚本的名称
$PATH
: 包含了操作系统搜索可执行文件的路径
$1, $2, ……
: 等表示脚本的参数。
$#
: 表示传递给脚本的参数数量
$?
: 表示上一个命令的退出状态等
2.5 捕获命令结果
pwd
绝对路径: var=$(cd 路径 && pwd)
#!/usr/bin/env bash
targetDir=$(cd ~/bolawen/scripts/test && pwd)
echo ${targetDir}
三、使用
使用变量时,变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界。总结: 尽管两者在大多数情况下是等价的,但是.${}
这种语法能在一些特殊情况下更明确、可读,特别是在变量后有紧跟字符需求时。
3.1 数字
a=1
echo "$a"
或者
a=1
echo "${a}"
3.2 数组
读取数组某个元素: 格式为 ${数组名[下标]}
, 用法如下:
valuen=${array_name[n]}
读取数组所有元素: 格式为 ${array_name[@]}
, 用法如下:
echo ${array_name[@]}
获取数组长度: 格式为 #array_name[@]
或者 #array_name[*]
或者 #array_name[n]
, 用法如下:
length=${#array_name[@]}
// 或者
length=${#array_name[*]}
// 或者
length=${#array_name[n]}