您的位置:

Shell脚本变量赋值

一、变量的定义和使用

在Shell脚本中,变量的定义和使用非常简单,可以直接给变量赋值并使用。变量使用时,需要在变量前面加上美元符号$。

例如:

#!/bin/bash
# 定义变量
VAR=100
# 使用变量
echo $VAR

上面的例子中,我们定义了一个名为VAR的变量,给它赋值为100,在使用时直接使用$VAR输出100。

二、特殊变量

在Shell脚本中,还有一些特殊的变量,它们的值是自动设置的,无需进行定义和赋值即可直接使用。

特殊变量的使用方法与普通变量相同,直接使用美元符号$即可。

以下是几个常用的特殊变量:

  • $0:脚本执行的完整路径和文件名

  • $1~$n:表示脚本执行时传递的参数,$1表示第一个参数,$2表示第二个参数,以此类推

  • $#:表示传递给脚本的参数个数

  • $@:表示所有参数的列表,每个参数以空格分隔

  • $?:表示上一个命令的退出状态码,0表示执行成功,非0表示执行失败

例如:

#!/bin/bash
# 传递参数执行脚本
echo $0
echo $1
echo $#
echo $@
echo $?

假设我们将上面的脚本保存为test.sh,并执行以下命令:

$ ./test.sh arg1 arg2 arg3

则输出结果为:

./test.sh
arg1
3
arg1 arg2 arg3
0

三、变量的重新赋值

在Shell脚本中,变量的值可以被重新赋值。重新赋值后,原来的值将被覆盖。

例如:

#!/bin/bash
# 定义变量
VAR=100
# 输出变量的值
echo $VAR
# 重新赋值
VAR=200
# 再次输出新的值
echo $VAR

输出结果为:

100
200

四、使用命令输出作为变量的值

在Shell脚本中,还可以将命令的输出作为变量的值。使用命令输出的方法是在变量赋值语句中,使用反引号或$()包含命令。

例如:

#!/bin/bash
# 定义包含日期时间的变量
VAR=`date`
# 输出时间变量的值
echo $VAR

输出结果为:

2022年 6月 6日 星期一 09:53:44 CST

五、环境变量和局部变量

环境变量是Shell脚本中全局可见的变量,任何子进程都可以访问它。局部变量只在当前脚本中可见。

定义环境变量的方法是在脚本外部定义,在脚本中通过$VAR的形式访问。定义局部变量的方法是在脚本中直接定义。

例如:

#!/bin/bash
# 定义环境变量
export VAR=100
# 定义局部变量
LOCAL_VAR=200
# 输出两个变量的值
echo $VAR
echo $LOCAL_VAR

输出结果为:

100
200

六、结论

这篇文章介绍了Shell脚本变量的定义、使用、特殊变量、重新赋值、使用命令输出作为变量的值、环境变量和局部变量。通过学习,我们可以更好的编写Shell脚本,并提高Shell脚本的编写效率。