0
#!/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 客户端中,如果语句正常工作,我可以执行此脚本并在内部回显。我在 ubuntu 服务器上做了同样的事情,它没有进入 if 语句。唯一的区别是我在服务器上使用 sudo 运行。

有什么建议么?

4

1 回答 1

0

奇怪,我不能评论,只能“回答”。

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

但是,在服务器端,当你使用 read LINE 读入 MS DOS 格式的行时,你也会读入结尾的 \r 字符。

我敢打赌这就是原因。尝试

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

首先并再次运行您的脚本。

于 2013-03-11T02:45:29.250 回答