互動輸入與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、指令碼預設值:
練習:輸入乙個裝置檔案,輸出這個裝置檔案的基本資訊。12
3456
78910
1112
#!/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
b seq命令引用$(seq [start[step]] end)
(seq最常用功能的就是步長)
3、返回列表的命令(例:$(命令))
4、glob機制----檔名萬用字元的機制
5、變數應用----傳參:$@ $*將引數作為for迴圈的列表
$0和awk不一樣,bash中的$0代表執行的指令碼檔案
awk中的$0代表整行內容 ----awk按行執行
需要多個詞的時候用「$@」,需要乙個詞的時候用「$」
5、vim常見用法:命令模式下dd為剪下,yy為複製,p為貼上
6、test命令總結:1、test的命令的引數-a、-o只在命令中使用;注:做字元匹配時不支援正規表示式和萬用字元
2、test test==,在連線兩個test的命令的時候,不能使用命令內部的引數-a、-o,一般使用|| && == != >= <=
shell指令碼之輸入互動read
這個 read 內部命令被用來從標準輸入讀取單行資料。這個命令可以用來讀取鍵盤輸入,當使用 重定向的時候,讀取檔案中的一行資料。這個命令有以下語法形式 read options variable.這裡的 options 是下面列出的可用選項中的乙個或多個,且 variable 是用來儲存輸入數值的乙...
shell指令碼中自動化互動輸入
有的shell指令碼需要互動輸入,如果需要批量或者自動化,可以根據實際情況按照如下方法處理 1.重定向 這個方法很簡單,把需要輸入的內容按每行寫入到文件中,然後執行指令碼 vpncmd content2.使用管道 echo e 3 n vpncmd3.使用expect expect是專門用來互動自動...
14 shell指令碼 006互動輸入與for語句
1 互動輸入 read read 命令同時可以定義多個變數值,而輸入的內容預設以空格為分隔符,將值輸入到對應的變數中 如果預設值過少,最後所有的值都會被賦予給最後乙個變數 如果預設值過多,多餘的變數則為空值 read a b c aa bb cc read如何輸入 1 echo 請輸入乙個目錄 我們...