Linux运维工程师必备的Bash变量

一、特殊变量

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
HCFF的头像HCFF
上一篇 2024-10-04 00:13
下一篇 2024-10-04 00:13

相关推荐

发表回复

登录后才能评论