Linux--shell交互输入与循环语句--06 - Go语言中文社区

Linux--shell交互输入与循环语句--06


一、交互输入

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

 

版权声明:本文来源博客园,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://www.cnblogs.com/gxnihao/p/11364415.html
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-11-09 10:40:20
  • 阅读 ( 735 )
  • 分类:Linux

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢