
Android デバイスからデバイス アーキテクチャを照会し、それをパスで使用してファイルをデバイスにプッシュするスクリプトがあります。
コードは次のようになります:
ARCH=$(adb shell getprop ro.product.cpu.abi)
adb push libs/"$ARCH"/binary /data/local/tmp/binary
しかし、パスが壊れてしまいます。getprop
コマンドをファイルにパイプすると、改行が返されることがわかります。これがおそらく問題の原因です。コマンド置換によって改行が削除されるという印象を持っていましたが、いずれにしても、次のことを試しました。
ARCH=$(adb shell getprop ro.product.cpu.abi | tr -d '\n')
まだ運がない。
何か案は/
答え1
adb
DOS の行末を持つコマンドを出力します。コマンド置換により、改行文字は削除されますが、復帰文字は削除されません。復帰文字は手動で削除する必要があります。
ARCH=$(adb shell getprop ro.product.cpu.abi)
ARCH=${ARCH%$'\r'}
adb push libs/"$ARCH"/binary /data/local/tmp/binary