昨天找出了有段时间没看过的Linux相关的书籍,看了一会之后感觉明白了书中自有黄金屋的道理。
今天就记录一些关于Shell变量的使用吧。
Shell变量大致分为三类:
1.内部变量:由系统提供,用户只能使用不能修改(内部变量指能够对bash shell脚本行为产生影响的变量,属于环境变量的范畴)。
2.环境变量:这些变量决定了用户工作的环境,不需要用户定义,可以直接在Shell中使用,其中某些变量用户可以修改。
3.用户变量:由用户建立和修改,也称用户自定义变量。在Shell脚本编写中会经常用到。
在Shell中,变量的赋值使用如下语法格式。
name=string
其中:
1.name是变量名,用户自定义的通常小写字母命名。
2."="是赋值符号。两边不能直接跟空格,否则Shell将视为命令。
3.string是被赋予的变量值。若string中包含空格、制表符和换行符,则sting必须用'string'或"string"的形式,双引号内允许变量替换,单引号则不可以。
单引号'',双引号""的区别是单引号''剥夺了所有字符的特殊含义,单引号''内就变成了单纯的字符。双引号""则对于双引号""内的参数替换($)和命令替换(``)是个例外。
4.通过在变量名(name)前加$字符,即用$name的形式引用变量的值,引用的结果就是用字符串string代替$name。此过程已称为变量替换。
下面对定义和使用Shell变量举例
Date=`date`
echo "Date is $Date"
USERS=`who | wc -l`
echo "Logged in user are $USERS"
UP=`date ; uptime`
echo "Uptime is $UP"
运行结果:
tabstop=8yue@Yue:~/桌面$ sh test.sh
Date is 2017年 10月 11日 星期三 14:35:25 CST
Logged in user are 1
Uptime is 2017年 10月 11日 星期三 14:35:25 CST
14:35:25 up 1:04, 1 user, load average: 0.13, 0.08, 0.06
反引号``是命令替换,命令替换是指Shell可以先执行``中的命令,将输出结果暂时保存,在适当的地方输出。语法:`command`