Bash

無法在腳本中回顯變數 value=*

  • January 29, 2018

我的文件內容:

123  
**1    
**  

嘗試顯示每個單詞的腳本:

for i in $(cat $myfile)  
do  
 echo "$i"  
done  

結果是 when echo *,它列出了我目前目錄中的文件,我不知道為什麼。所以我嘗試處理*之前的回顯。

另一個腳本的內容:

for i in $(cat $myfile)  
do  
 if [[ $i == *\+ ]](regex pattern find 1 * or more.)  
 then  
      (?what should I do. I tried i="\*",i="*" etc.; it doesn't work)  
 fi  
 echo "$i"  
done

文件名通配發生在- 行for,擴展為$(cat $myfile),而不是echo.

循環文件內容時,使用read

while IFS= read -r words; do
   printf '%s\n' "$words"
done <"$myfile"

也可以看看:


如果您想在自己的輸出行中包含每個空格分隔的單詞:

awk '{ for (i = 1; i <= NF; ++i) print $i }' "$myfile"

引用自:https://unix.stackexchange.com/questions/420332