2013-02-13 63 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 

這對我有效。罪魁禍首是貓我猜