一、特殊变量
Bash提供了许多特殊变量,它们在Bash脚本中非常有用。
1、$0:当前脚本的文件名。
#!/bin/bash
echo "当前脚本文件名:$0"
输出结果:
当前脚本文件名:test.sh
2、$1、$2、$3…:位置参数,表示脚本执行时传递的参数。
#!/bin/bash
echo "第1个参数为:$1"
echo "第2个参数为:$2"
echo "第3个参数为:$3"
执行脚本:./test.sh aa bb cc
输出结果:
第1个参数为:aa
第2个参数为:bb
第3个参数为:cc
3、$#:参数个数。
#!/bin/bash
echo "参数个数为:$#"
执行脚本:./test.sh aa bb cc
输出结果:
参数个数为:3
4、$@:所有参数,作为一个字符串使用。
#!/bin/bash
echo "所有参数为:$@"
执行脚本:./test.sh aa bb cc
输出结果:
所有参数为:aa bb cc
5、$?:上一个命令的退出状态码。
#!/bin/bash
ls /root
echo "退出状态码为:$?"
输出结果:
ls: 无法访问/root: 没有那个文件或目录
退出状态码为:2
二、环境变量
环境变量是在操作系统中存储的一个值,可以被许多进程或程序共享。
1、$PATH:环境变量,表示可执行程序的搜索路径。
#!/bin/bash
echo $PATH
输出结果:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2、$HOME:环境变量,表示当前用户的主目录路径。
#!/bin/bash
echo $HOME
输出结果:
/home/tom
3、$USER:环境变量,表示当前用户的用户名。
#!/bin/bash
echo $USER
输出结果:
tom
三、自定义变量
自定义变量可以在Bash脚本中自由定义,起到存储临时数据的作用。
1、定义变量:
#!/bin/bash
var="hello world"
echo $var
输出结果:
hello world
2、定义只读变量:
#!/bin/bash
readonly var="hello world"
var="new world"
执行脚本会报错:
test.sh: line 3: var: readonly variable
3、删除变量:
#!/bin/bash
var="hello world"
echo $var
unset var
echo $var
输出结果:
hello world
四、数组变量
数组变量是一个存储多个值的命名变量,可以在Bash脚本中使用。
1、定义数组变量:
#!/bin/bash
arr=("apple" "orange" "banana")
echo ${arr[0]}
echo ${arr[1]}
echo ${arr[2]}
输出结果:
apple
orange
banana
2、获取数组的长度:
#!/bin/bash
arr=("apple" "orange" "banana")
echo ${#arr[@]}
输出结果:
3
3、获取数组的所有值:
#!/bin/bash
arr=("apple" "orange" "banana")
echo ${arr[@]}
输出结果:
apple orange banana
五、全局变量和局部变量
在Bash脚本中,变量作用域分为全局变量和局部变量。
1、全局变量:
#!/bin/bash
var="hello world"
function test() {
echo $var
}
test
输出结果:
hello world
2、局部变量:
#!/bin/bash
function test() {
var="hello world"
echo $var
}
test
echo $var
执行脚本会报错:
test.sh: line 7: var: unbound variable
原创文章,作者:HCFF,如若转载,请注明出处:https://www.506064.com/n/135512.html