これがmacaddressと部分的に一致しない理由を誰かが私に説明できますか$mac
?
#!/bin/sh
mac="f0:79:60:0f:d3:0e"
if [[ "$($mac)" = 'f0:79:60*' ]]
then
echo "true"
else
echo "false"
fi
ifステートメント内で呼び出す必要があります"$($mac)"
。それ以外の場合、変数は置き換えられません。
ベストアンサー1
[[...]]
BusyBox(ash shell)を使用しているため、スクリプトはシェルが認識しない構文()を使用しているようです。また"$($mac)"
、に変更する必要があります$mac
。
BusyBoxで動作する修正版は次のとおりです(Sparkのウサギの耳の答えの代わりに)。
#!/bin/sh
mac="f0:79:60:0f:d3:0e"
if [ -z "${mac##f0:79:60*}" ]
then
echo "true"
else
echo "false"
fi
パターンに一致する可能な最大部分を削除するときは、結果の文字[ -z "${mac##f0:79:60*}" ]
列が空であることを確認してください。$mac
f0:79:60*