shell变量概述
跟许多程序设计语言一样,你可以在 bash 中创建变量。
bash 中没有数据类型,bash 中的变量可以保存一个数字、一个字符、一个字符串等等。同时无需提前声明变量,给变量赋值会直接创建变量。
变量命名原则
命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
中间不能有空格,可以使用下划线(_)。
不能使用标点符号。
不能使用 bash 里的关键字(可用 help 命令查看保留关键字)。
声明变量
访问变量的语法形式为:${var} 和 $var 。
变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,所以推荐加花括号。
word=hello
echo ${word}
# output: hello
只读变量
使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。
rword=hello
echo ${rword}
readonly rword
# rword=bye # 如果放开注释,执行时会报错
删除变量
使用 unset 命令可以删除变量。变量被删除后不能再次使用。unset 命令不能删除只读变量。
dword=hello # 声明变量
echo ${dword} # 输出变量值
变量类型
局部变量 - 局部变量是仅在某个脚本内部有效的变量。它们不能被其他的程序和脚本访问。
环境变量 - 环境变量是对当前 shell 会话内所有的程序或脚本都可见的变量。创建它们跟创建局部变量类似,但使用的是 export 关键字,shell 脚本也可以定义环境变量。
常见的环境变量:
变量 描述
$home 当前用户的用户目录
$path 用分号分隔的目录列表,shell 会到这些目录中查找命令
$pwd 当前工作目录
$random 0 到 32767 之间的整数
$uid 数值类型,当前用户的用户 id
$ps1 主要系统输入提示符
$ps2 次要系统输入提示符
示例-- shell脚本
#!/usr/bin/env bash
################### 声明变量 ###################
name=world
echo hello ${name}
# output: hello world
################### 输出变量 ###################
folder=$(pwd)
echo current path: ${folder}
################### 只读变量 ###################
readonly rword
################### 删除变量 ###################
dword=hello # 声明变量
echo ${dword} # 输出变量值
unset dword # 删除变量
echo ${dword}
# output: (空)
################### 系统变量 ###################
echo uid:$uid
echo logname:$logname
echo user:$user
echo home:$home
echo path:$path
echo hostname:$hostname
echo shell:$shell
echo lang:$lang
################### 自定义变量 ###################
days=10
user=admin
echo $user logged in $days days age
days=5
user=root
# output:
# admin logged in 10 days age
# root logged in 5 days age
################### 从变量读取列表 ###################
colors=red yellow blue
colors=$colors white black
for color in $colors
do
echo $color
done
芝芯方案 | 无绳电动工具,不接电源线仍能释放动力
佳能EOS200D评测 搭载了当下主流的硬件配置
锤子科技法人变更:罗永浩变更为温洪喜
isd4004应用电路
全新Windows 10X系统适用于各种不同的设备形态
Shell脚本中的变量详解
腕带的作用及选择方法
关于提高功率和降低燃油耗的电辅助增压方案设计
高通承诺未来一代的骁龙在运行Windows时表现会更好
EMC实践工作中,如何避免静电放电干扰
PSA的创新型ADAS系统
锡膏焊点疲劳寿命模型
Maxim推出40V、1MHz DC-DC控制器
库卡与TÜV莱茵合作引领移动机器人行业高质量发展
全国调频频率表
win7 ISO镜像安装win7后怎么激活,步骤是怎样的
无人机反制设备为什么越来越受欢迎
DIY机器人系列:工程师自制蓝光呼吸WIFI机器人
4G TD-LTE测试解决方案全方位解读
安世半导体致力于为中国汽车半导体保驾护航