EOF後に$ idが消えるのはなぜですか?

EOF後に$ idが消えるのはなぜですか?
cat >run_pos2bed3.sh <<EOF
ls 2*/peaks.txt | while read id;
do echo $id done;
EOF

入力後

ナノ専用ショー

ls 2*/peaks.txt | while read id;
do echo  done;
EOF

$id後でどのように追加しますかEOF

ベストアンサー1

それ以来、なぜ$id消えたのですかEOF

<<なぜなら、 と を言うと$変数がすでに持っている値を得ることになるからです。そうすれば

id=foo
cat >run_pos2bed3.sh <<EOF
ls 2*/peaks.txt | while read id;
do echo $id done;
EOF

あなたはそれを得るために見つけることができますdo echo foo done

$id後でどのように追加しますかEOF

する

cat >run_pos2bed3.sh << \EOF
ls 2*/peaks.txt | while read id;
do echo $id done;
EOF

違いはオンラインに接続する前です\EOF<<

おすすめ記事