加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell--交互输入

发布时间:2020-12-16 01:42:43 所属栏目:安全 来源:网络整理
导读:交互输入与for语句(8-15) 交互输入 1、read的用法:read命令同时可以定义多个变量值,而输入的内容默认可以空格为分配符,将值输入到对应的变量中;如果默认值过多最后所有的值都会被赋予给最后一个变量 2、如果默认是过少,多余的变量则为空值。 3、实例

交互输入与for语句(8-15)

交互输入

1、read的用法:read命令同时可以定义多个变量值,而输入的内容默认可以空格为分配符,将值输入到对应的变量中;如果默认值过多最后所有的值都会被赋予给最后一个变量

2、如果默认是过少,多余的变量则为空值。

3、实例 read a b c ??aa bb cc

4、Read如何输入:echo “请输入一个目录”(我们需要echo -n取消换行符号)

?????????????????Echo “请输入人一个目录:”read变量(请输入一个目录/etc)

5、常用参数:-p? 例:read -p “请输入一个目录”变量

? ? ? ? -t:定义超时时间? ?例:read -t 5 -p“请输入一个目录:”变量

6、脚本默认值:

练习:

输入一个设备文件,输出这个设备文件的基本信息。

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
#输入一个设备文件,输出这个设备文件的基本信息。
?
read? -t 5 -p? "请输入一个设备文件名:"? devname
[ -z $devname ] && devname=` fdisk? -l`
if? [ -b? /dev/ $devname ]; then
???????? fdisk? -l? /dev/ $devname
???????? exit? 0
else
???????? echo? "$devname不是设备文件"
???????? echo? "Usage:‘请输入一个设备文件,如sda‘"
fi

执行结果:

7、case语句的语法格式:

case? 变量? in??

PATTEN1)

  代码块1

  ;;

PATTEN2)

  代码块2

  ;;

*)

  代码库

esac

For语句循环

1、应用场景:有一个功能,该功能需要循环执行,只是循环的对象不同,但是循环对象是同类数据

2、for语句格式:

for 变量 in 列表;do

?  循环体

Done

3、echo命令参数:-e:使echo命令能够识别特殊字符

          r:回车不换行

          n:换行且光标移至行首

          t:制表符(tab键)

         -n:不换行输出

4、列表的生成方式:1、直接给出字符列表(例:for i in a b c d e f;do)

          2、整数列表? a{start....end}? ?

                ?b seq命令引用$(seq [start[step]] end)

??               (seq最常用功能的就是步长)

          3、返回列表的命令(例:$(命令))        

          4、glob机制----文件名通配符的机制

          5、变量应用----传参:[email?protected] $*将参数作为for循环的列表

??            ?$0和awk不一样,bash中的$0代表运行的脚本文件

?            ??Awk中的$0代表整行内容 ----awk按行执行

?            ??需要多个词的时候用“[email?protected]”,需要一个词的时候用“$”

5、vim常见用法:命令模式下dd为剪切,yy为复制,p为粘贴

6、test命令总结:1、test的命令的参数-a、-o只在命令中使用;注:做字符匹配时不支持正则表达式和通配符

         2、test test==[[]],在连接两个test的命令的时候,不能使用命令内部的参数-a、-o,一般使用|| && == != >= <=

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读