Why did
$id
disappear after theEOF
?
Porque, quando você diz <<
e, em seguida, $
, você obtém o valor que a variável já possui.
Se você fizer
id=foo
cat >run_pos2bed3.sh <<EOF
ls 2*/peaks.txt | while read id;
do echo $id done;
EOF
você verá que obtém do echo foo done
.
How can I add
$id
afterEOF
?
Faça
cat >run_pos2bed3.sh << \EOF
ls 2*/peaks.txt | while read id;
do echo $id done;
EOF
A diferença é o \
antes do EOF
na linha <<
.