Linux--shell交互输入与循环语句--06
程序员文章站
2022-05-29 10:33:30
一、交互输入 1、命令用法:read a b c -> aa bb cc read命令同时可以定义多个变量值;而输入的内容默认以空格为分隔符,将值输入到对应的变量中;如果默认值输入过多,最后所有的值都会被赋予给最后一个变量;如果输入的值少于变量数,多余的变量则为空值 2、常用参数: -p read ......
一、交互输入
1、命令用法:read a b c -> aa bb cc
read命令同时可以定义多个变量值;而输入的内容默认以空格为分隔符,将值输入到对应的变量中;如果默认值输入过多,最后所有的值都会被赋予给最后一个变量;如果输入的值少于变量数,多余的变量则为空值
2、常用参数:
-p read -p “请输入一个值:” 变量名 === echo -n “请输入一个值:” ; read 变量名
-t 定义超时时间 read -t 5 -p “请输入一个值:” 变量名
二、while语句
1、while语句语法格式
定义初始值 while 条件判断;do 循环体 值变化语句 done
练习
i=1 while (( $i<=5 ));do echo $i let i++ done
2、其他两种特殊语句格式
第一种:
while read 变量;do 循环体 done <</path/filename
第二种.死循环:
while true;do 循环体 done
break 打断循环
continue 打断本次循环,开始下次循环
sleep 延时循环
三、until语句
与while用法相同
与while的区别是,只有判断条件为false时候,才会进入循环
四、for语句循环
1、for语句的应用场景:
某功能需要循环执行,只是执行对象不同,(数据对象必须是同类)
2、for语句格式:
for 变量 in 条件列表;do 循环体 done
3、列表的生成方式
a) 直接给出字符串列表
for i in a b c d e;do 循环体 done
b) 整数列表
{start .. end} : 例:{1..9} seq :命令引用 $(seq [start [步长]] end) 例:seq 20 2 30输出20 22 24 26 28 30
c) 返回列表命令
$(command)
应用场景例:判断/var/log的所有文件,以.log结尾的文件统计处理
#!/bin/bash # declare -i sum=0 for i in $(ls /var/log/);do if [[ $i = "*.log" ]];then echo $i let sum++ fi done echo "统计.log结尾的文件有:$sum"
d) glob机制:---- 文件通配符的机制
e) 变量引用:----传参
$@ $* 将参数作为for循环的列表
$0 代表运行的脚本文件 awk中$0代表整行内容
需要多个次的时候用$@ ,需要一个词的时候用$*
4、扩展:for语句的另一种写法(基于c语言的写法)
for((i=0;i<10;i++));do 循环体 done