#!/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运行。
有什么建议吗?
答案 0 :(得分:0)
我认为该文件是MS DOS格式,当您在Windows上的ubuntu客户端下运行脚本时,它理解MS DOS格式,并相应地对待它。
但是,在服务器端,当您使用读取LINE读取MS DOS格式的行时,您还将读取尾随的\ r \ n字符。
我打赌这就是原因。试试
tr -d '\015' /home/radiare/Desktop/first.txt
首先再次运行您的脚本。