shell基础下
第1章 shell基础下1.1read基础命令
shell变量除了可以直接赋值或脚本传参外,还可以使用read命令从标准输入中获得,read为bash内置命令。
常见语法格式
read[参数] [变量名]
1.1.1-p
-p=prompt:设置提示信息
# read -p "请输入两个数字" V1 V2
请输入两个数字1 2
# echo $V1 $V2
1 2
1.1.2-t
设置输入等待时间,单位默认为秒
# read -p "请输入两个数字" -t 5
请输入两个数字#
1.1.3-n计数
read -n个数,设置read命令计数输入的字符,当输入的字符数目达到预定数目时自动退出,并将输入的数据赋值给变量。
# read -p "请输入两个数字"-n 5 -t 10 a b c
请输入两个数字1 2 3# echo $a
1
# echo $b
2
# echo $a $b $c
1 2 3
案例:实现read 基本读入功能
# read -t 10 -p "输入一个数字:" num
输入一个数字:12
# echo $num
12
1.2if 条件语句
对于if条件语句,简单地说,其语义类似于汉语里的“如果。。那么。。”。if条件语句是linux运维人员必掌握的知识!
1.2.1if条件语句的语法
[*] 单分支结构:
第一种语法:
if
then
指令
fi
第二种语法:
if ;then
指令
fi
上文的“"部分可以是test,[],[[]],(())等条件表达式,甚至可以直接使用命令作为条件表达式。每个if条件语句都以if开头,并且带有then,最后以fi结束。
第二种语法中的分号相当于命令换行,上面的两种语法含义是相同的。
条件语句还可以嵌套(即if条件句里面还有if条件句),注意每个if条件句中都要有一个与之对应的fi,每个if和它下面最近的fi成对搭配,语法如下表示:
if
then
if
then
fi
fi
特殊用法:
文件条件表达式[-f "$file1"]&&echo 1就等价于下面的if条件语句。
if [ -f"$file1"];then
echo 1
fi
记忆方法:
为了便于大家记忆if单分支语句的语法,老男孩给出了形象的语法描述。if条件语句单分支的中文编程就相当于一个女孩对你说:
如果
那么
我就嫁给你
果如
案例1 比较两个数字的大小
read -p "请输入两个字:" x y
#no.1 判断是否为两个数字
[ -z "$x" -o -z"$y" ] &&\
echo "错误:输入两个整数"&&\
exit 1
#no.2 判断是数字
if [ -z"`echo $x|sed 's###g'` " -a -z " `echo $y|sed's###g'` " ]
then
echo " 错误:请输入整数 "
exit 2
fi
exit 2
fi
#no.3 比较数字大小
if [ $x -gt $y ]
then
echo "$x > $y"
else
if [ $x -lt $y ]
then
echo "$x
页:
[1]