スクリプトは変数値= *をエコーできません。

スクリプトは変数値= *をエコーできません。

私のファイルの内容:

123  
**1    
**  

各単語を表示するスクリプトを試してください。

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

その結果、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

ベストアンサー1

ファイル名のグロービングは、ではなくfor拡張される-lineで発生します。$(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"

おすすめ記事