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

相关推荐
微爱帮监所写信寄信9 分钟前
微爱帮监狱写信寄信工具服务器【Linux篇章】再续:TCP协议——用技术隐喻重构网络世界的底层逻辑
linux·服务器·开发语言·网络·网络协议·小程序·监狱寄信
VekiSon19 分钟前
Linux网络编程——IO多路复用
linux·运维·网络
旖旎夜光38 分钟前
Linux(3)(上)
linux·学习
zhuzewennamoamtf1 小时前
Linux Regmap API寄存器映射抽象化
linux·运维·服务器
Joker 0071 小时前
Linux nohup命令实战指南
linux·运维·wpf
大聪明-PLUS1 小时前
管理 Linux 内核模块
linux·嵌入式·arm·smarc
lifewange1 小时前
关于进程的 Linux 命令有哪些?
linux·运维·服务器
三两肉1 小时前
Linux 网络包的 “快递分拣”:从发送到接收的内核协作全景
linux·网络·计算机网络·tcp
Maguyusi2 小时前
pve lxc 虚拟机 raw 格式 磁盘 扩容
linux·运维·windows
fpcc2 小时前
跟我学C++中级篇—Linux内核中链表分析
linux·c++·链表