Durchführung string-Vergleich mit Zeilenumbruch in bash

Warum funktioniert der folgende code nicht in bash? Beachten Sie, ich versuche, führen Sie ein komplexer Vergleich, wie "classextender\r"; dies ist nur ein Vereinfachtes Beispiel.

Kann ich bestätigen, dass das carriage return, ascii 13" ist der Einstieg in das Skript. Aber ich kann nicht vergleichen, gegen Sie mit einem normalen string-Vergleich.

Das erwartete Ergebnis ist "1" für eine positive übereinstimmung.

Befehlszeile:

echo -e "\r" | ./test.sh

Skript:

ord() {
   printf '%d' "'$1"
}

read a
echo "1st char: $(ord ${a:0:1})"

left="${a:0:1}"

if [ "$left" = "\r" ]; then
   echo 1
fi

exit 0
InformationsquelleAutor Zhro | 2013-12-04
Schreibe einen Kommentar