字符串长度
lenth=${#string}
echo "lenth is " $lenth #显示输入的字符串长度
字符串分割
nstr=${string:2:3}
echo $nstr #比如字符串apple,输出ppl
只读readonly
num=110
echo $num
num=11 #这里会出错,制度变量不可更改
echo $num
清除变量的值
num=11
echo $num
unset num
echo $num #清空变量的值,直接引用也为空
键盘获得变量值
read num num1 num2 #不建议多数值输入,输入时数值间忘记空格会出错
echo $num $num1 $num2 #最后一个变量输出后面所有剩余数值,包括空格
加减乘除运算
add=`expr $num1 + $num2`
echo "$add = $num1 + $num2"
mul=$(expr 4 \* 2) # 其中``和$()都是取得结果集
echo "$mul = 4 \* 2"
let dec=num1-num2
echo $dec
let div=num1-num2
echo $div
text 测试语句
文件比较运算符:
-e file 测试file是否存在
-d file 测试file是否目录
-f file 测试file是否是文件
-r 测试file是否可读
-w 测试file是否可写
-x 测试file是否可执行
算数比较运算符:
-eq等于
-ne不等于
-gt大于
-ge大于等于
-lt小于
-le小于等于
字符串比较运算符:
-z string字符串长度是否为零
-n string字符串非零则真
str=str1相同
str!=str1不同
逻辑运算符
-a与
-o或
-!非
if语句
if [ $num -a 8 ] #条件表达式两侧需要一个空格,if后也需要空格
then
echo "num等于8"
fi
if [ $num -lt 8 ]
then
echo "$num小于8"
elif [ $num1 -a 8 ]
then
echo "$num1等于8"
fi
常见变量
$?命令执行后的返回状态,返回零表示执行成功
$*所有参数表
$@所有参数表
$#传递到脚本的参数个数
$0可执行命令本身,不是位置参数
$1~$n分别表示第一个到第n个位置参数
echo -n不换行输出
text 语句语法
text $name -eq $1
echo $?
if text -f $fiename
then
……
fi
if [ -f $filename ]
then
……
fi
case语句
case $str in
W|w)
echo "word!"
;;
*) # *表示任意多字符
echo "其他字符";; # ;;可以在语句后
[a-z])
echo "字母"
;;
esac
for语句
for i in 1 2 3 4 5
do
echo -n $i
done
echo
for((i=0;i<10;i++)) # for 嵌套
while语句
while [ num -le 110 ]
do
let sum+=num
let num++
done
echo $sum