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

相关推荐
坐吃山猪20 分钟前
BrowserUse14-源码-ScreenShot模块-整理
linux·数据库·python
Jelly-小丑鱼29 分钟前
Linux搭建syslog日志服务器
linux·服务器·docker·日志服务器·syslog服务器
yilan_n30 分钟前
在Linux下使用Termony搭建HNP自验证环境全指南
linux·harmonyos·termony·hnp·命令行适配
爱宇阳34 分钟前
Linux 安全加固:禁用 IPv6 ICMP 重定向
linux·安全·智能路由器
让学习成为一种生活方式38 分钟前
全基因组重测序上游分析流程--随笔15
linux
阿巴阿巴boer1 小时前
用wsl搭建远程linux服务器
linux·运维·服务器·ssh
starvapour2 小时前
Ubuntu硬盘的创建分区、格式化与挂载
linux·ubuntu
小立爱学习2 小时前
ARM64 指令 --- CASP / CASPA / CASPL / CASPAL
linux·c语言
知识分享小能手2 小时前
CentOS Stream 9入门学习教程,从入门到精通,CentOS Stream 9 中 Linux C 编程 —语法详解与实战案例(13)
linux·学习·centos
piaoroumi3 小时前
UVC调试
linux·运维·前端