Shell中Read用法簡介

ljm0211發表於2012-06-20
一.  read讀取單個詞. $read name
$tony ma
$echo $name
tony ma

$read id passwd
$allen passwd
$echo $id
$allen
$echo $passwd
$passwd

$read id passwd
$allen kaka gogo
$echo $id
$allen
$echo $passwd
$kaka gogo 二.  read讀取整行.      利用while迴圈來使read讀取整行。      以下是程式碼清單: 1  #!/bin/bash
2  lineno=13  cat $* |4  while read -r line
5  do
6          echo "$lineno: $line"
7          lineno=$((lineno + 1))
8  done 三.   read的巢狀.       1)while外層的read依次讀取的是檔案pbook中的每一行,而內層的read是從console讀取的內容。      2)要實現while read的巢狀,可以使用exec命令,將I/O重定向。        注意exec的用法,以及括號的使用。  1  #!/bin/bash
2  echo -n "Enter name to be removed: "
3  read name
4  p=$(grep "$name " phonebook | wc -l)
5  echo $p
6  if [ "$p" -gt 1 ]
7  then
8          echo "More than one match ; Please select the one to remove;"
9          grep  "$name " phonebook > pbook
10          cat pbook | while read line
11          do(
12                echo -n  "$line  Remove(y/n)?"
13                exec < /dev/tty
14                read answer
15                if [ "$answer" = y ]
16                then
17                          grep -v "^$line$" phonebook > /tmp/phonebook.tmp
18                          mv /tmp/phonebook.tmp phonebook
19                else
20                          continue
21                fi22             )
23          done
24  else
25          grep -v "^$line$" phonebook > /tmp/phonebook.tmp
26          mv /tmp/phonebook.tmp phonebook27  fi28  cat phonebook

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11411056/viewspace-733472/,如需轉載,請註明出處,否則將追究法律責任。

相關文章