【发布时间】:2013-02-13 10:26:18
【问题描述】:
#!/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 运行。
有什么建议吗?
【问题讨论】:
-
呵呵,和stackoverflow.com/questions/14848147/…几乎一样的代码。列出的文件是否存在于服务器上?如果它存在于服务器上,root 是否有权访问该文件(例如远程文件系统)?您是否发现任何错误?
-
我没有看到任何错误。该文件还使用 sudo 权限执行。它正在访问的其他文件也具有读写权限。它一直运行到最后,但它没有进入 if 循环。这意味着它没有读取指定的 txt 文档。当我在控制台中运行 cat 并回显内容时,它会正确返回内容。
-
客户端和服务器上的文件完全相同吗?我的意思是字节相同?
-
sudo cat /home/radiare/Desktop/first.txt和 second.txt 一样需要显示和客户端一样的内容,如果你看到像false%这样的行,则说明末尾没有新行该文件,这就是它没有被解析的原因。