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形式を理解し、それに応じて処理します。

ただし、サーバー側では、readLINEを使用してMSDOS形式の行を読み取る場合、末尾の\r文字も読み取ります。

それが理由だと思います。試す

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

最初にスクリプトを再度実行します。

于 2013-03-11T02:45:29.250 に答える