1. 程式人生 > >Linux-read 命令(20)

Linux-read 命令(20)

Linux read 命令

引數說明:

  • -a 後跟一個變數,該變數會被認為是個陣列,然後給其賦值,預設是以空格為分割符。
  • -d 後面跟一個標誌符,其實只有其後的第一個字元有用,作為結束的標誌。
  • -p 後面跟提示資訊(prompt),即在輸入前列印提示資訊。
  • -e 在輸入的時候可以時候命令補全功能。
  • -n 後跟一個數字,定義輸入文字的長度N,很實用。
  • -r 遮蔽\,如果沒有該選項,則\作為一個轉義字元,有的話 \就是個正常的字元了。
  • -s 安靜模式,在輸入字元時不再螢幕上顯示,例如login時輸入密碼。
  • -t 後面跟秒數,定義輸入字元的等待時間。
  • -u
    後面跟fd,從檔案描述符中讀入,該檔案描述符可以是exec新開啟的。

示例1-讀取使用者輸入一串陣列:

#!/bin/bash

read -p "請輸入一串值:" -a  array       #等待使用者輸入一串值,以空格隔開

echo "get ${#array[@]} values in array"

for((i=0;i<${#array[@]};i++))
do
  echo "array[${i}] = ${array[i]}"
done

執行:

請輸入一串值: a b cc dd 123

get 5 values in array
array[
0] = a array[1] = b array[2] = cc array[3] = dd array[4] = 123

 

示例2-讀取檔案每一行資料:

#!/bin/bash

count=1 

cat test.txt | while read line      # cat 命令的輸出作為read命令的輸入,read讀到>的值放在line中
do
   echo "Line $count:$line"
   count=$[ $count + 1 ]          # 注意中括號中的空格。
done

exit 0