shell的模式可分為互動模式和非互動模式。
互動模式,就是需要和使用者互動才可以將程式執行完畢。如下:
1 #!/bin/bash
2 #3 cat()
4 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 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指令碼從入門到精通》 機械工業出版社 hive互動模式和非互動模式
1,可以將hive執行的sql語句儲存到指令碼檔案中,通過 f選項制定指令碼檔案執行hive eg hive f script.sql 2,對於較短的sql語句,可以直接使用 e選項執行hive eg hive e select from table a 3,s選項 hive執行過程中,會在終端上顯...
shell指令碼和vim模式初步學習
第一次linux作業竟然花了不止4個小時而且只做出兩道,真是受不了。作業的題目如下 2,8s 4 g a bc abc 1 方法一g n s t合併前 合併後 原理 首先標記所有換行符,然後通過s命令把換行符換成製表符,這時第二行就會合併到第一行,第二行的標記被刪除,接著就會跑到第三行執行同樣操作,...
學懂正則2 量詞匹配模式 的貪婪 非貪婪和獨佔
獨佔模式 其它總覽 貪婪模式與非貪婪模式 貪婪模式 使用a 來匹配 aaabb會得到如下結果 總共有四次匹配符合,分別是 aaa 後三次都是空字串,這也是 這一量詞的特點,它會匹配空字串,而正則認為字串以空字元結尾。如果 a 去匹配 aaa 得到結果也會是兩個,分別是 aaa 非貪婪模式 在量詞後面...