0
点赞
收藏
分享

微信扫一扫

shell学习2:交互模式和非交互模式


 shell的模式可分为交互模式和非交互模式。

交互模式,就是需要和用户交互才可以将程序执行完毕。如下:

1 #!/bin/bash
2 #
3 CAT()
4 {
5 cat /etc/passwd | head -$line
6 }
7 echo -n "Input number of lines:"
8 read line
9 limit=6
10 #
11 if [ $limit -gt $line ]
12 then
13 while [ -n $line ]
14 do
15 CAT
16 break 2
17 done
18 #
19 echo -n "Contine?(answer yes/no):"
20 read answer
21 if [ $answer = 'yes' ]
22 then
23 let line=line+1
24 CAT
25 fi
26 fi
27 exit 0

解释:

3-6行是定义个CAT的函数,该函数的作用是读取/etc/passwd文件中的内容并通过管道输送给head命令,head命令根据变量$line的值将指定的行显示出来。

7行,提示输入一个数字,即要显示的行数。

8行,使用read命令读取在第7行输入的行数值,并将读取到的信息值存在变量$line中。

11行,比较两个变量值的大小。

13-17行,此while循环语句结构调用CAT函数读取指定文件的内容,并在读取完成后退出,其中第13行中的-n选项,用于判断行数是否为空,不为空时为真,第15行是调用CAT函数。

21-25行,在满足条件时(用户输入yes),执行调用函数读取/ect/passwd文件中的行,其中23行表示将变量line中的值加1,也就是多读取一行的信息。

非交互模式,就是不需要和用户交互,就可以将程序执行完毕,如下:

1 #!/bin/bash
2 #
3 CAT()
4 {
5 cat /etc/passwd | head -$line
6 }
7
8 limit=6
9 line=2
10 #
11 if [ $limit -gt $line ]
12 then
13 while [ -n $line ]
14 do
15 CAT
16 break 2
17 done
18 #
19 echo
20 let line=line+1
21 CAT
22 fi
23 exit 0

参考:陈祥琳 编《linux shell脚本从入门到精通》 机械工业出版社

举报

相关推荐

0 条评论