1、使用场景:本地变量在用户当前shell生存期的脚本中使用
2、定义赋值的几种方式:
变量名=值 #赋值时不加引号 变量名=‘值’ #赋值时加单引号 变量名=“值” #赋值时加双引号
3、定义变量名以及赋值时的要求
变量名:一般是字母、数字、下划线组成,可以以字母或者下划线开头,不能以数字开头,建议采用驼峰语法来编辑变量名(即当变量名是多个单词时,除了第一个单词首字母是小写,其他单词的首字母都是大写)
赋值:可以用单引号、双引号以及不加任何引号,但是三者的含义是不同的
4、三种赋值方式的不同之处
无引号 :赋值时,
如果值中有空格,则会造成赋值失败 如果值中有命令、其他变量,则会先把命令和变量解析后再输出 如果字符串中带有空格等特殊字符,则会赋值失败单引号:赋值时,
所见即所得,即输出时会将单引号内的所有内容按原样输出,就是你看到什么就输出什么,被称为“强引用”双引号:赋值时,
输出双引号内的室友内容 如果值中有命令、其他变量、特殊转移符等,会先把前三者解析出来再输出,是??推荐的用法??,被称为“弱引用”反引号:顺带说一下,反引号用法。一般用于引用命令,执行的时候命令会被执行,但是一般不推荐用反引号引用命令的方式,而是推荐用 $() 这样的方式来引用命令。
5、变量定义以及赋值经验小结
1)若变量内容为连续的数字或者字符串,赋值时,可不加任何引号,例如:abc=123
2)若变量的内容很多时,且有空格和希望被解析的变量,就必须使用双引号,例如:abc="/etc/rc.local $USER"
3)若希望原样输出变量中的内容时必须采用单引号进行复制,例如:abc=‘$USER‘
4)若要引用命令,则用反引号把赋值的命令反引起来,但是建议用$()的方式,而不是反引号,例如:abc=ls
abc=$(ls)
5)使用“echo $变量名”即可以输出变量的内容,也可以用printf代替echo输出更复杂的格式内容
6)当变量后面连接有其他字符的时候,必须给变量加上大括号{},例如:${abc}_def
7)没有特殊要求时,一律使用双引号
6、三剑客(grep/awk/sed)取用Shell变量时的特殊用法
grep:按前面的正常用法
sed:按前面的正常用法
awk:??不能按前面的正常用法??,awk取用shell变量时的格式例子:NB="dabiaoge" echo "$NB" | awk ‘{print $0}‘ echo ‘$NB‘ | awk ‘{print $0}‘ echo $NB | awk ‘{print $0}‘ NB=`pwd` 或者 NB=$(pwd) echo "$NB" | awk ‘{print $0}‘ echo ‘$NB‘ | awk ‘{print $0}‘ echo $NB | awk ‘{print $0}‘
二、我是大表哥,我为自己带盐,以后会不定时更新,请支持正版,盗链可耻
我的博客是:http://blog.51cto.com各位朋友有什么不懂以及认为有什么错误之处,请在下方留言,谢谢!