リモートコンピュータで実行しようとすると、「予期しないファイルの終わり」というメッセージが表示されます。
ただし、この行をCLIに貼り付けると正常に実行されます。
# if [ -f running.script ] ; then echo 'Script already running.'
> else echo 'Script not running.' ; touch running.script
<ervers_status | awk 'NR==1 {print $3}' | tr -d '\r')
<ervers_status | awk 'NR==2 {print $3}' | tr -d '\r')
> if [ "$sip1" = 0 ] ; then echo "Sip Server 1 UP" ; fi
> if [ "$sip1" = 1 ] ; then echo "Sip Server 1 DOWN" ; fi
> if [ "$sip1" = 2 ] ; then echo "Sip Server 1 IDLE" ; fi
> if [ "$sip2" = 0 ] ; then echo "Sip Server 2 UP" ; fi
> if [ "$sip2" = 1 ] ; then echo "Sip Server 2 DOWN" ; fi
> if [ "$sip2" = 2 ] ; then echo "Sip Server 2 IDLE" ; fi
> rm running.script
> fi
Script not running.
Sip Server 1 UP
Sip Server 2 IDLE
#sh script.sh
script.sh: line 14: syntax error: unexpected end of file
# cat script.sh
#!/bin/sh
if [ -f running.script ] ; then echo 'Script already running.'
else echo 'Script not running.' ; touch running.script
sip1=$(cat /var/mand/sipservers_status | awk 'NR==1 {print $3}' | tr -d '\r')
sip2=$(cat /var/mand/sipservers_status | awk 'NR==2 {print $3}' | tr -d '\r')
if [ "$sip1" = 0 ] ; then echo "Sip Server 1 UP" ; fi
if [ "$sip1" = 1 ] ; then echo "Sip Server 1 DOWN" ; fi
if [ "$sip1" = 2 ] ; then echo "Sip Server 1 IDLE" ; fi
if [ "$sip2" = 0 ] ; then echo "Sip Server 2 UP" ; fi
if [ "$sip2" = 1 ] ; then echo "Sip Server 2 DOWN" ; fi
if [ "$sip2" = 2 ] ; then echo "Sip Server 2 IDLE" ; fi
rm running.script
fi
#
スクリプトの内容を正確に示すNP++のキャプチャを以下に含めました。
ベストアンサー1
長い話を短く
低周波を入力してください行末をUnixに変換する必要があります。もし。
スクリプトの内容を正確に示すNP++のキャプチャを以下に含めました。
実際に表示されたものとまったく一致しません。各行の末尾に追加の制御コードがあります。それらを削除する必要があります。
次のいずれかの方法でWindowsファイル形式を削除するには:
vi file
次に、実際の制御:1,$s/^M/
位置を入力してクリックします。^M
v
m
- をインストールし
dos2unix
て実行しますdos2unix file
。