Linux 意外标记“附近出现语法错误”;“做”;
此shell脚本正在抛出错误消息: 意外标记do附近出现语法错误 这是我的密码Linux 意外标记“附近出现语法错误”;“做”;,linux,shell,loops,sh,Linux,Shell,Loops,Sh,此shell脚本正在抛出错误消息: 意外标记do附近出现语法错误 这是我的密码 #!/bin/bash DIRS="/home/delhi_qa/mkv/18000/marketview/log/FIFO_OPTIMISER/LOGS 1" DEST="home/delhi_qa/Tests/Ankit/TTLOGSBACKUP" DELETE_OLD_ZIP_FILES="no" BASENAME=/usr/bin/basename ZIP=/usr/bin/zip for i in $D
#!/bin/bash
DIRS="/home/delhi_qa/mkv/18000/marketview/log/FIFO_OPTIMISER/LOGS 1"
DEST="home/delhi_qa/Tests/Ankit/TTLOGSBACKUP"
DELETE_OLD_ZIP_FILES="no"
BASENAME=/usr/bin/basename
ZIP=/usr/bin/zip
for i in $DIRS
do
#On running this unexpected token message occurred at this line#
zipfile="${DEST}/$(${BASENAME} ${d}).zip"
echo -n "Creating $zipfile..."
if [ "$DELETE_OLD_ZIP_FILES" == "yes" ]
then
[ -f $zipfile ] && /bin/rm -f $zipfile
fi
${ZIP} -r $zipfile $d &>/dev/null && echo "Done!"
done
你能告诉我为什么吗?使用:
DIRS=“/home/drish_qa/mkv/18000/marketview/log/FIFO_optimizer/LOGS\1”
在日志之后检查其他“\”,因为如果不使用“\”,linux将不考虑空间。这可能是导致错误的原因。要确认其正常工作,您也可以使用不同的文件夹名称进行检查,例如LOG_1
您的输入文件包含回车符。使用dos2unix之类的东西 与摆脱这些类似德夫努尔 德夫努尔是正确的。问题的错误修订版3通过扭曲之前阅读的错误消息隐藏了这一点 syntax error near unexpected token `do
追加撇号出现在行首,覆盖了命令
/do
的第一个字符。这只能由以下回车引起:do
将example.sh文件转换为unix的简单方法是使用NotePad++(编辑>EOL转换>unix/OSX格式)
您还可以在记事本++中设置默认的EOL(设置>首选项>新建文档/默认目录>在格式框下选择Unix/OSX)
参考-
它还解决了这个问题:
我用了这个。它更早地解决了我的问题
devnull和Armali已经指出了这个问题。希望详细信息对您有所帮助。您的输入文件包含回车。使用
dos2unix
或类似的方法来摆脱它们。另外,$d
与$i
不同。
'/do: line 8: syntax error near unexpected token `do