Подстановка команд — это добавление новой строки?

Подстановка команд — это добавление новой строки?

У меня есть скрипт, который запрашивает архитектуру устройства 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

Связанный контент