我有一個問題 「if語句」,而內部讀循環\ nBASH:同時讀取而不回波+條件=奇怪的行爲
實施例1:
81 function processconfig2()
82 {
83 pattern='^monthly'
84 while read line
85 do
86 if [[ $line =~ $pattern ]]; then
87 echo $line
88 fi
89 done < /etc/logrotate.conf | awk '/^\/var\/log\/wtmp/, /^}/'
90
91 exit 0
92 }
輸出爲空\ n 線89後加入後回聲$線:\ n
81 function processconfig2()
82 {
83 pattern='^monthly'
84 while read line
85 do
86 if [[ $line =~ $pattern ]]; then
87 echo $line
88 fi
89 echo $line
90 done < /etc/logrotate.conf | awk '/^\/var\/log\/wtmp/, /^}/'
91
92 exit 0
93 }
我已經得到了正確的輸出(在條件線86妥善處理):
/var/log/wtmp {
monthly
monthly
create 0664 root utmp
minsize 1M
rotate 1
}
請問有人可以向我解釋這種奇怪的行爲。
因爲它打印兩次。在第二個例子中改變第87行echo $ line「twice」是一個證明。 – ForColleague 2014-11-21 20:16:00
謝謝,看起來更優雅,會提高效率。 – ForColleague 2014-11-21 20:23:11
你應該評論答案而不是問題(如果你真的喜歡它,可能會贊成並接受) – keyser 2014-11-21 20:23:48