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

相关推荐
好好学习啊天天向上5 分钟前
世上最全:ubuntu 上及天河超算上源码编译llvm遇到的坑,cmake,ninja完整过程
linux·运维·ubuntu·自动性能优化
tan180°1 小时前
MySQL表的操作(3)
linux·数据库·c++·vscode·后端·mysql
典学长编程2 小时前
Linux操作系统从入门到精通!第二天(命令行)
linux·运维·chrome
wuk9982 小时前
基于MATLAB编制的锂离子电池伪二维模型
linux·windows·github
独行soc5 小时前
#渗透测试#批量漏洞挖掘#HSC Mailinspector 任意文件读取漏洞(CVE-2024-34470)
linux·科技·安全·网络安全·面试·渗透测试
BD_Marathon5 小时前
Ubuntu下Tomcat的配置
linux·ubuntu·tomcat
饥饿的半导体5 小时前
Linux快速入门
linux·运维
BD_Marathon5 小时前
Ubuntu:Tomcat里面的catalina.sh
linux·ubuntu·tomcat
BD_Marathon5 小时前
设置LInux环境变量的方法和区别_Ubuntu/Centos
linux·ubuntu·centos
Me4神秘5 小时前
Linux国产与国外进度对垒
linux·服务器·安全