1、交互输入
read
read 命令同时可以定义多个变量值,而输入的内容默认以空格为分隔符,将值输入到对应的变量中;
如果默认值过少,最后所有的值都会被赋予给最后一个变量;
如果默认值过多,多余的变量则为空值;
>read a b c
>aa bb cc
read如何输入:
(1)echo "请输入一个目录:"
我们需要echo -n取消换行符号
(2)echo "请输入一个目录:"; read +变量
请输入一个目录:/etc/
常用参数:
-p
read - p "请输入一个目录:" + 变量
-t
read -t 5 -p "请输入一个目录:" + 变量
脚本默认值
2、for语句循环
for语句的应用场景:
有一个功能,这个功能需要循环执行,只是执行的对象不同;
for语句格式:
for 变量 in 列表;do
循环体
done
练习:九九乘法表:
(1)方法一:
(2)方法二:
echo -e
-e:使echo命令,能够识别特殊字符
: 回车不换行
: 换行符
:制表符tab = 4个空格
unix2dos -->
dos2unix
case语句:
case的语法格式:
case 变量 in
PATTEN1)
代码块1
;;
PATTEN2)
代码块2
;;
*)
列表的生成方式:
1、直接给出字符串列表
for i in a b c d e;do
循环体
done
2、整数列表
a 、{start ... end} //{1...1}是不行的 = python range{1,100}
b 、seq命令引用 $seq[start ... end]
步长 python range{1,100,2}
练习:ping有多少台电脑在线
3、返回列表的命令
$(command)
应用场景:ls /var/log
4、glob机制------文件名通配符的机制
$(ls /var/log)
/var/log/*
test命令总结:
1、test的命令的option的-a -o 只在命令中使用;
5、变量引用---传参
$@ $* 将参数作为for循环
$0 ----和awk的不一样
bash中的$0 代表运行的脚本文件;
awk中的$0 代表整行内容; ------awk按行执行
需要多个词的时候用$@,需要用一个词的时候用$*
扩展:for语句的另外一种写法:
基于c语言的for语言写法:
for 变量 in 列表;do
循环体
done
优点:不易进入死循环
for((i=0;i<10;i++))
for((初始条件;条件判断语句;值变化语句))
循环体
done
while语句的格式:
i = 0 (因为机器识别数字是从0开始的)
初始值
while 条件 ;do
循环体
let i++
done