2013-02-13 139 views
1
#!/bin/bash 

# Reading Manthan Status 
echo "Manthan cat started" 
cat /var/www/symmetric-ds-3.1.6/bin/my_mon.txt | while read LINE 

do 
    echo "Inside my loop" 
    echo "$LINE" 
    if [ "$LINE" == "false" ]; then 
     echo "startedif_my" 
     sudo lsof -n -i:8082 | grep LISTEN | awk '{ print $2 }' | uniq |sudo xargs kill -9; 
     sleep 30; 
     sudo sh /var/www/symmetric-ds-3.1.6/bin/sym --port 8082 --server; 
     break 
    fi 
done 


#Reading Panel Status 
echo "Panel cat started" 
cat /var/www/symmetric-ds-3.1.6/bin/panel_mon.txt | while read LINE 

do 
    echo "Inside panel loop" 
    echo "$LINE" 
    if [ "$LINE" == "false" ]; then 

     sudo lsof -n -i:8082 | grep LISTEN | awk '{ print $2 }' | uniq |sudo xargs kill -9; 
     sleep 30; 
     sudo sh /var/www/symmetric-ds-3.1.6/bin/sym --port 8082 --server; 
     break 
    fi 
done 
echo "end of script" 

读取文件当我运行上面的脚本,该脚本读取第一个文件,呼应$线。之后,它不读取第二个文件,它只是最后一个回声,这是脚本的结尾。shell脚本并使用cat

你可以请建议为什么吗?

+1

你确定第二个文件是否有一些内容? – Guru 2013-02-13 07:11:24

+0

我在DOS/Windows下创建文本文件时看到过很多文件,并且在文件末尾没有换行符,导致读取跳过了行 – Petesh 2013-02-13 07:16:29

+0

我检查它是否将内容作为假,并且它根本不会去检查条件。它在UBUNTU中运行,并且该文件由ubuntu中的php创建。我也检查了权限。 – user1597811 2013-02-13 07:34:11

回答

1
value=$(</var/www/symmetric-ds-3.1.6/bin/my_mon.txt) 
if [ "$LINE" == "false" ]; then 
echo"Inside loop" 
fi 

这对我有效。罪魁祸首是猫我猜