大数据时代,后台的服务器的操作系统一般是linux。对于很多人来说,linux的shell是另类的语言,甚至很多人没有觉得它是一门语言。而实际上,linux的shell功能非常强大。特别是在文件、目录、系统进程的操作、管理等方面,有非常好用的功能。
先说说linux shell的变量。这里主要讨论一般变量及其基本运算。还有一种变量属于系统变量,比如用set、env命令可以看到。对于系统变量的用途,本文暂不涉及。
1.变量命名规则
以字母或下划线开头,剩下的部分可以是:字母、数字、下划线。
例如: sql_bak.tar.gz,log_bak.tar.bz2,_var,LD_LIBRARY_PATH
2.定义变量。注意这个时候变量名前没有"$"。
例如:your_name="bigdata.com";a=20
3.使用变量。
使用一个定义过的变量,只要在变量名前面加美元符号即可,如:
echo $your_name echo ${your_name}
变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界。
拼接字符串:
# 使用双引号拼接
your_name="Peter"
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting $greeting_1
#hello,Peter! hello,Peter!
算术运算:
a=2 ; b=3
val=`expr $a + $b`;echo $val
var1=$((a + b));echo $var1
#5 --以上这两种表达方式完全等价。
#运算符 说明 举例 (a=10;b=20)
#+ 加法 `expr $a + $b` 结果为 30。
#- 减法 `expr $a - $b` 结果为 -10。
#* 乘法 `expr $a \* $b` 结果为 200。
#/ 除法 `expr $b / $a` 结果为 2。
#% 取余 `expr $b % $a` 结果为 0。
#= 赋值 a=$b 将把变量 b 的值赋给 a。
#== 相等。用于比较两个数字,相同则返回 true。 [ $a == $b ] 返回 false。
#!= 不相等。用于比较两个数字,不相同则返回 true。 [ $a != $b ] 返回 true。
#注意:条件表达式要放在方括号之间,并且要有空格,例如: [$a==$b] 是错误的,必须写成 [ $a == $b ]。