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 脚本至关重要。通过练习和实验,你会逐渐熟悉这些概念,并能够更有效地利用它们。

相关推荐
陈苏同学8 分钟前
[已解决] VS Code / Cursor / Trae 的 PowerShell 终端 conda activate 进不去环境的常见问题
linux·windows·conda
我不是秃头sheep15 分钟前
Ubuntu 安装 Docker(镜像加速)完整教程
linux·ubuntu·docker
靡樊27 分钟前
网络基础概念
linux·服务器·网络·c++·学习
Kusunoki_D1 小时前
速查 Linux 常用指令 II
linux·运维·服务器
xmweisi021 小时前
Ansible内置模块之 group
linux·运维·ansible·rhce·rhca·红帽认证
小猪写代码2 小时前
Ubuntu 系统默认已安装 python,此处只需添加一个超链接即可
linux·python·ubuntu
孤寂大仙v2 小时前
【Linux笔记】——Linux线程理解与分页存储的奥秘
linux·运维·笔记
有谁看见我的剑了?3 小时前
ubuntu 22.04 wifi网卡配置地址上网
linux·运维·ubuntu
码农新猿类3 小时前
Ubuntu摄像头打开失败
linux·运维·ubuntu
PWRJOY3 小时前
Ubuntu磁盘空间分析:du命令及常用组合
linux·运维·ubuntu