ubuntu服务器和ubuntu客户端在Windows上的不同行为

时间:2013-02-13 10:26:18

标签: linux shell unix ubuntu

#!/bin/bash

# Reading

cat /home/radiare/Desktop/first.txt | while read LINE

do
if [ "$LINE" == "false" ]; then
echo "Inside first loop"
break
fi
done

cat /home/radiare/Desktop/second.txt | while read LINE

do
if [ "$LINE" == "false" ]; then
echo "Inside second loop"
break
fi
done

在ubuntu客户端中,我能够执行此脚本并在if语句正常工作时回显。我在ubuntu服务器上做了同样的事情,它没有进入if语句。唯一的区别是我在服务器上使用sudo运行。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

奇怪,我无法发表评论,但只能“回答”。

我认为该文件是MS DOS格式,当您在Windows上的ubuntu客户端下运行脚本时,它理解MS DOS格式,并相应地对待它。

但是,在服务器端,当您使用读取LINE读取MS DOS格式的行时,您还将读取尾随的\ r \ n字符。

我打赌这就是原因。试试

tr -d '\015' /home/radiare/Desktop/first.txt

首先再次运行您的脚本。