A substituição de comando está adicionando uma nova linha?

A substituição de comando está adicionando uma nova linha?

Eu tenho um script que consulta a arquitetura do dispositivo em um dispositivo Android e usa isso em um caminho para enviar um arquivo para o dispositivo.

O código é semelhante a este:

ARCH=$(adb shell getprop ro.product.cpu.abi)
adb push libs/"$ARCH"/binary /data/local/tmp/binary

No entanto, o caminho fica mutilado. Ao canalizar o getpropcomando para um arquivo, posso ver que ele retorna uma nova linha, o que provavelmente é a causa do problema. Fiquei com a impressão de que a substituição de comandos elimina novas linhas, mas de qualquer forma, tentei:

 ARCH=$(adb shell getprop ro.product.cpu.abi | tr -d '\n')

ainda sem sorte.

Alguma ideia/

Responder1

adbgera um comando com um final de linha DOS. A substituição do comando remove o caractere de nova linha, mas não o retorno de carro; você terá que removê-lo manualmente.

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

informação relacionada