On Sun, Aug 11, 2019 at 02:10:06PM -0400, Stephen P. Molnar wrote:
Thanks to all that shared their expertise.
#!/bin/bash
while IFS= read -r d
do
cd "${d}_apo-3k9b"
echo "${d}_apo-3k9b"
echo "${d}_apo-3k9b.dpf"
/home/comp/Apps/Autodock/autodock4 -p "${d}_apo-3k9b.dpf" -l
"${d}_apo-3k9b.dlg"
cd ..
done <ligand.list
and dos2unix solved the problem!!!!!!
There's still one more problem you want to fix: the exit status of cd
isn't being checked. If the cd fails, your script still continues on
to run the two echo commands and the autodock4 command. I don't know
what autodock4 does, but running it in the wrong directory is probably
not helpful.
Here's how I would solve that (there are other ways too):
#!/bin/bash
while IFS= read -r d
do
( cd "${d}_apo-3k9b" || exit
echo "${d}_apo-3k9b"
echo "${d}_apo-3k9b.dpf"
exec /home/comp/Apps/Autodock/autodock4 -p "${d}_apo-3k9b.dpf" -l "${d}_apo-3k9b.dlg"
)
done <ligand.list
P.S. it would also have been possible to work around the carriage return
issues with IFS, but your dos2unix approach is perfectly valid as well.