shell变量快速入门
临时变量
开启新的sh,临时变量不存在
在shell脚本运行时,会先查找系统环境变量ENV
该变量指定了环境文件(加载顺序通常是/etc/profile ~/.bash_profile ~/.bashrc /etc/bashrc)
实现变量局部生效
编辑用户变量文件
立即生效命令
开启新的sh,变量存在
切换普通用户,变量不存在
实现/mnt下脚本直接执行
编辑用户变量文件
显示PATH环境变量
实现变量全局生效
编辑系统变量文件
立即生效命令
切换普通用户,变量存在
.
双引号:所见非所得,它会先把变量解析之后,再输出
加双引号即可显示*
以下符号不可解析
单引号:所见即所得
反斜杠( \ ) :转义字符/逃脱字符,Linux如果echo要让转义字符发生作用,就要使用-e选项,且转义字符要使用双引号
反引号(``) :命令替换,通常用于把命令输出结果传给入变量中
另一种方式
.
$符的用法
编辑文件
$1$2$3是传递参数的顺序 ,$*$@是全部$#是参数个数$0是文件名
传递参数1 2 3 ![](https://s1.51cto.com/images/blog/201909/03/3de2a851e6f55f838583eb550a3a1f8e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
区分$*$@
br/>![](https://s1.51cto.com/images/blog/201909/03/3de2a851e6f55f838583eb550a3a1f8e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
区分$*$@
编辑文件
传递参数1 2 3 ![](https://s1.51cto.com/images/blog/201909/03/8c91ff9728fa49f7de85cd9ee6df8c33.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
$@把每个参数作为一个字符串返回
br/>![](https://s1.51cto.com/images/blog/201909/03/8c91ff9728fa49f7de85cd9ee6df8c33.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
$@把每个参数作为一个字符串返回
传递参数1 2 3
$! Shell最后运行的后台Process的PID(后台运行的最后一个进程的进程ID号)
$? 最后运行的命令的结束代码(返回值)即执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)
$$ Shell本身的PID(ProcessID,即脚本运行的当前进程ID号)