shell script error expecting “do”

2020-05-17 11:07发布

问题:

#!/bin/sh
while true ; do
echo "WTF"
done

This is giving a syntax error: syntax error: unexpected end of file (expecting "do")

I also tried:

#!/bin/sh
while :
do
echo "WTF"
done

回答1:

I suspect line endings.

Try:

hexdump -C yourscript.sh 

And look for 0d 0a sequences. You can strip \r (0d) with the tr command:

cat yourscript.sh | tr -d '\r' >> yournewscript.sh


回答2:

Give this a try:

#!/bin/sh
while [ true ]
do
    echo "WTF"
done

Please pay special attention to the spaces in the line 'while [ true ]'



标签: linux bash shell