unix bash-意外的文件结尾
这让我真的很疯狂,我花了一整天来处理这种格式的东西。 脚本如上所示,打印出意外的文件结尾 如果我删除最后一行,它将不会打印任何不正确的内容。unix bash-意外的文件结尾,bash,unix,Bash,Unix,这让我真的很疯狂,我花了一整天来处理这种格式的东西。 脚本如上所示,打印出意外的文件结尾 如果我删除最后一行,它将不会打印任何不正确的内容。 我真的不知道它出了什么问题。使用dos2unix从脚本中删除DOS行结尾。如果该选项不可用,则可以使用以下选项: #!/bin/bash maxDate='00000000' fileDate='20140507' if [[ $maxDate == '00000000' ]]; then echo "right" fi echo $fileDa
我真的不知道它出了什么问题。使用
dos2unix
从脚本中删除DOS行结尾。如果该选项不可用,则可以使用以下选项:
#!/bin/bash
maxDate='00000000'
fileDate='20140507'
if [[ $maxDate == '00000000' ]]; then
echo "right"
fi
echo $fileDate
tr-d'\r'myscript.tmp
mv myscript.tmp myscript
问题出在哪里?请使用cat--show nonprinting filename
检查文件。文件中可能有DOS行结尾。这意味着then
实际上是then\r
,它bash
不认为是终止启动if
命令的命令列表,这意味着bash
解析器在找到if
语句的结尾之前到达了文件的结尾。我不完全理解您的意思,就像我的脚本文件名是text一样,就像你说的,我键入了tr-d'\r'tr -d '\r' < myscript > myscript.tmp
mv myscript.tmp myscript