shell 变量

1.shell脚本变量

1)定义变量
变量=值 (两侧不能有空格)
2)调用变量
$变量 全写形式是${变量}

eg:

a=hello # 定义变量,hello是字符串,等号两边不能有空格
echo $a # 使用变量,要加$符号

3)使用变量接收命令返回值
A=$(ls -la) 等价于反引号

3)变量相加

a=4+5
echo ${a}123 # 不能写为$a123,这样系统会把a123当成变量

2.环境变量

系统变量:保存和系统操作环境相关的数据。 H O M E 、 HOME、 HOMEPWD、 S H E L L 、 SHELL、 SHELLUSER等等
1.使用set命令可以查看所有环境变量,如$HOME、$PWD、$SHELL、$USER
2.使用unset可以删除环境变量
2.shell 脚本中可以直接使用$HOME、$PWD、$SHELL、$USER这些变量
3.shell 脚本可以定义环境变量,这样其他的shell脚本就可以使用 export 变量名=变量值

3.位置参数变量

位置参数变量:主要用来向脚本中传递参数或数据,变量名不能自定义,变量作用固定。

变量描述
$nn为数字,$0代表命令本身,$1-$9代表第一到第9个参数,十以上的参数需要用大括号包含,如${10}。
$*代表命令行中所有的参数,把所有的参数看成一个整体。以"$1 $2 … $n"的形式输出所有参数
$@代表命令行中的所有参数,把每个参数区分对待。以"$1" “ 2 " … " 2" … " 2""n” 的形式输出所有参数
$#代表命令行中所有参数的个数。添加到shell的参数个数

在脚本中可以输入shift:
shift指令:参数左移,每执行一次,参数序列顺次左移一个位置,$# 的值减1,用于分别处理每个参数,移出去的参数不再可用

$* 和 $@的区别
$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号" “包含时,都以”$1" “ 2 " … " 2" … " 2""n” 的形式输出所有参数
当它们被双引号" “包含时,”$*" 会将所有的参数作为一个整体,以"$1 $2 … n " 的 形 式 输 出 所 有 参 数 ; " n"的形式输出所有参数;" n""@" 会将各个参数分开,以"$1" “ 2 " … " 2" … " 2""n” 的形式输出所有参数

4.预定义变量

预定义变量:是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的。

变量描述
$?执行上一个命令的返回值 执行成功,返回0,执行失败,返回非0(具体数字由命令决定)
$$当前进程的进程号(PID),即当前脚本执行时生成的进程号
$!后台运行的最后一个进程的进程号(PID),最近一个被放入后台执行的进程 &

退出状态码 $?

状态码描述
0命令成功结束
1一般性未知错误
2不适合的shell命令
126命令不可执行
127没找到命令
128无效的退出参数
128+x与Linux信号x相关的严重错误
130通过Ctrl+C终止的命令
255正常范围之外的退出状态码

eg: aa=$((4+5))
bb=expr 4 + 5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值