Bash
無法在腳本中回顯變數 value=*
我的文件內容:
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"