以下のシェルスクリプトはbashシェルで完璧に動作します。しかし、アンドロイドシェルでエラーを生成します。アンドロイドが使用しているシェルで何かをしなければならないかもしれません。しかし、どうすればそれを解決できますか?完璧な解決策ではない場合は、ハックも私のために行います。シェルスクリプトはbashで動作しますが、 'adbシェル'では動作しません
シェルスクリプト:アンドロイドシェルで
func()
{
local x
x=${1:3:1}
echo "x - $x"
if [ "${x}" = " " -o -z "${x}" ]; then
a="M"
else
a="S"
fi
echo "A - ${a} X - {x}"
}
func "abc=efg"
O/P、bashシェル(Linux)の上
root:/ # sample.sh
x - =
/system/bin/sample.sh[14]: [: =: missing second argument
A - S X - {x}
O/P:
PC:~$ ./sample.sh
x - =
A - S X - {x}
スクリプトは '#!/ bin/bash'で始まりますか? – Barmar
@Barmarはい。これはbashシェルの#!/ bin/bashとAndroidシェルの#!/ system/bin/shから始まります。 –
Androidのbashのバージョンは? – Barmar