
Ubuntu日本語フォーラム

ログインしていません。
以下のようなシェルスクリプトを作ったのですが、妙なエラーがはかれてしまいます
/↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓/
#!/bin/sh
mainDir=/root/ddnsUpdate/
oIP=`sed -n '19,19p' ${mainDir}oldGIP`
nIP=`sed -n '19,19p' ${mainDir}newGIP`
echo "古 $oIP"
echo "新 $nIP"
if ["$oIP" = "$nIP"]; then
echo "yes"
else
echo "no"
fi
/↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑/
実行結果は以下の通りです
/↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓/
古 GetExternalIPAddress用IPアドレス: 192.168.xxx.xxx
新 GetExternalIPAddress用IPアドレス: 192.168.xxx.xxx
: not found[GetExternalIPAddress用IPアドレス: 192.168.xxx.xxx
no
/↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑/
何故not foundが出るのかも判らず、多分そのせいでif文も上手く動いてないようです・・・
よろしくお願いします
オフライン
if ["$oIP" = "$nIP" ]; then
のように、[と"$oIP"をくっつけていませんか?
[]で条件式を作る場合、[と]とその他の条件式の構成要素の間には空白が必要です。
ご存知かも知れませんが、[はコマンドとしてシェルによって実行されています。
[と"$oIP"をくっつけると、シェルは["$oIP"を一つのコマンドとして実行しようとします。
当然そんなコマンドないのでnot foundと出ます。
オフライン
>ご存知かも知れませんが、[はコマンドとしてシェルによって実行されています。
知りませんでした・・・
適当にサンプルを探して真似ていただけでした・・・
確かに[]にブランクを挟むと正常に作動しました
ありがとうございます
オフライン