Bash

命令替換是添加換行符嗎?

  • November 20, 2017

我有一個腳本,可以從 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')

仍然沒有運氣。

有任何想法嗎/

adb輸出一個以 DOS 行結尾的命令。命令替換去除換行符,但不去除輸入;你必須手動剝離它。

ARCH=$(adb shell getprop ro.product.cpu.abi)
ARCH=${ARCH%$'\r'}
adb push libs/"$ARCH"/binary /data/local/tmp/binary

引用自:https://unix.stackexchange.com/questions/405835