定义变量:
name='qwer' 不解析任何字符
name="qwer" 会解析$和\特殊字符
name1=123;name2=456 定义多个变量
now_date=`date` 执行系统命令(现在系统的时间)
引用变量:
echo $name
echo {$name} {}用于区分边界
预定义变量:
$# 参数的数量
$@ 所有参数
$* 所有参数
$? 执行后返回状态,0成功,非0失败
$$ 当前进程号
$! 最后一个进程号
$0 当前进程名
输出格式:
echo 换行输出
echo -e $i \t 转义 \t 输出制表符
printf 不换行输出
接受键盘输入:
read name
echo "xxxx $name"
按行输入:
<<| 用“|”做定界符
1111111111
222222222
|
let和expr整数算术运算:
i=10
j=20
q=30
let sum=$i+$j+$q
sum=`expr $i+$j+$q`
cheng=`expr $i\*$j` 乘法要用\转义
scale bc小数精度控制:
n=`echo "scale4;13/2" | bc` scale4:小数4位
echo $n
6.5000
字符串操作:
echo ${name:0:3} 取0-3位数字符
string="you and you is name"
echo {string/you/YOU} /替换you为YOU and you is name
echo {string//you/YOU} //两次YOU and YOU is name
test比较运算:
大于 -gt
小于 -lt
大于等于 -ge
小于等于 -le
等于 -eq
不等于 -ne
================
a=100
b=200
test $b -gt $a
=================
str1="abc"
str2=""
test -n str1 测试str1长度不为0,成功返回0
test -z str1 测试str1长度不为空,成功返回0
test $str1 -a $str2 与
test $str1 -o $str2 或
test $str1 ! $str2 非