Shell 脚本编程基础:变量

Shell 脚本:变量

定义变量

定义一个变量时不需要指定类型,直接赋值即可。变量名由字母、数字或下划线组成,但不能以数字开头。

bash 复制代码
variable_name=value

例如:

bash 复制代码
name="kevin"

请注意,在赋值语句中,等号两边不能有空格,否则 Shell 会认为你在尝试执行命令。

使用变量

要引用变量的值,需要在变量名前加上 $ 符号。

bash 复制代码
echo $variable_name
echo ${variable_name}

例如:

bash 复制代码
echo $name

echo ${name}

两种方式都可以使用,但是当变量名后面紧跟着字符时,需要用大括号 {} 来明确变量的边界,如 ${variable_name}text

变量作用域

  • 局部变量:默认情况下,Shell 中定义的变量都是局部的,只在当前脚本或函数内部有效。
  • 环境变量 :通过 export 命令可以将变量设置为环境变量,这样子进程也可以访问该变量。
bash 复制代码
export variable_name=value

内置变量

Shell 提供了一些内置变量,这些变量包含有关系统和当前 shell 会话的信息。例如:

  • $0 - 当前脚本的名字
  • $1, $2, ... - 传递给脚本或函数的参数
  • $# - 参数的数量
  • $@ - 所有参数的列表
  • $? - 上一条命令的退出状态(成功为0,失败为非0)

特殊变量

还有一些特殊变量用于处理输入输出重定向、进程ID等。

  • $$ - 当前shell的进程ID
  • $! - 最后一个后台进程的PID

变量操作

  • 测试变量是否已设置 :使用 -z-n 测试字符串长度是否为零或非零。
  • 删除变量 :使用 unset 命令来删除变量。
bash 复制代码
unset variable_name
  • 读取用户输入 :使用 read 命令来从标准输入读取一行并将其存储到变量中。
bash 复制代码
read variable_name

默认值和替代

如果希望在变量未被设置或为空的情况下提供默认值,可以使用以下语法:

bash 复制代码
${variable_name:-default_value}

这将在 variable_name 未设置或为空时返回 default_value

总结

变量是 Shell 编程的核心元素之一,掌握它们对于编写有效的 Shell 脚本至关重要。通过练习和实验,你会逐渐熟悉这些概念,并能够更有效地利用它们。

相关推荐
CYRUS_STUDIO19 小时前
用 Frida 控制 Android 线程:kill 命令、挂起与恢复全解析
android·linux·逆向
熊猫李21 小时前
rootfs-根文件系统详解
linux
dessler1 天前
Hadoop HDFS-高可用集群部署
linux·运维·hdfs
泽泽爱旅行1 天前
awk 语法解析-前端学习
linux·前端
轻松Ai享生活2 天前
5 节课深入学习Linux Cgroups
linux
christine-rr2 天前
linux常用命令(4)——压缩命令
linux·服务器·redis
三坛海会大神5552 天前
LVS与Keepalived详解(二)LVS负载均衡实现实操
linux·负载均衡·lvs
東雪蓮☆2 天前
深入理解 LVS-DR 模式与 Keepalived 高可用集群
linux·运维·服务器·lvs
乌萨奇也要立志学C++2 天前
【Linux】进程概念(二):进程查看与 fork 初探
linux·运维·服务器
獭.獭.2 天前
Linux -- 信号【上】
linux·运维·服务器