阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

详解Linux bash变量

48次阅读
没有评论

共计 1107 个字符,预计需要花费 3 分钟才能阅读完成。

导读 Linux 中编写 SHELL 脚本必然要接触到变量,本文对 bash 中不同的变量类型进行一个简要说明

详解 Linux bash 变量

Bash 变量类型
  1. 本地变量
  2. 局部变量
  3. 环境变量
  4. 位置变量
  5. 特殊变量(内置)

这里需要注意的是对变量进行赋值时,”=” 两边是不能有空白的,否则就会报错。

root@ubuntu:~# LIST='/etc'
root@ubuntu:~# echo $LIST
/etc
root@ubuntu:~# LIST = '/etc'
LIST: command not found
本地变量

var_name=value:作用域为整个 bash 进程可以使用;
变量命名规范:

  1. 只能含字母、数字和下划线,并且以字母和下划线开头。
  2. 最好不要跟系统已有的环境变量重名。
  3. 变量名可充分体现这个变量的作用。
局部变量

声明局部变量使用“local”命令,局部变量作用域只在作用范围内有效。
local var_name=value:作用域为当前代码段

环境变量

作用域为当前 shell 进程及其子进程,不能影响到其父进程,声明环境变量使用“export”命令。

export var_name=value

,如果变量已经定义可以只是用变量名 export var_name,即可用下面两种方式声明环境变量:
1. export var_name=value
2. var_name=value
export var_name
脚本在执行命令时会启动一个子 shell 环境变量:
系统自动执行的脚本(非命令行启动)就需要自我定义需要的个环境变量

位置变量
$1,$2,$3,……
cat first.sh test.txt hello
$1: first.sh
$2: test.txt
$3: hello

shift:踢掉参数
shift n:踢掉 n 个参数,默认踢掉一个参数
这里需要注意的是 $0 为调用该脚本的名字,而参数作为变量的话第 10 个变量不能直接写 $10,而需要写成 ${10}。

特殊变量

$?:上一个命令执行状态的返回值:
程序执行可能有两种返回值:
1. 程序执行结果
2. 程序状态返回吗(0-255)
0 则为执行正确
1-255 则执行出错(1,2,127 系统预留);
可以自定义返回值来获取不同的错误状态。

$#:获取当前 shell 命令行中参数的总个数
$*:获取当前 shell 的所有参数“$1 $2 $3 …,受 IFS 控制
$@:这个程序的所有参数“$1″“$2″“$3″“…”,不受 IFS 控制
$0 获取当前执行的 shell 脚本的文件名
$n 获取当前执行的 shell 脚本的第 n 个参数值,n=1..9
$$ 获取当前 shell 的进程号(PID)
$! 执行上一个指令的 PID

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-24发表,共计1107字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中