Fügt die Befehlsersetzung eine neue Zeile hinzu?

Fügt die Befehlsersetzung eine neue Zeile hinzu?

Ich habe ein Skript, das die Gerätearchitektur eines Android-Geräts abfragt und diese in einem Pfad verwendet, um eine Datei auf das Gerät zu übertragen.

Der Code sieht ungefähr so ​​aus:

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

Der Pfad wird jedoch verstümmelt. Wenn ich den getpropBefehl an eine Datei weiterleite, sehe ich, dass er eine neue Zeile zurückgibt, was wahrscheinlich die Ursache des Problems ist. Ich hatte den Eindruck, dass die Befehlsersetzung neue Zeilen entfernt, aber so oder so habe ich Folgendes versucht:

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

immer noch ohne Erfolg.

Irgendwelche Ideen/

Antwort1

adbgibt einen Befehl mit einem DOS-Zeilenende aus. Die Befehlsersetzung entfernt das Zeilenumbruchzeichen, aber nicht den Wagenrücklauf; diesen müssen Sie manuell entfernen.

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

verwandte Informationen