Dies ist meine erste stackoverflow Frage, in Bezug auf bash Scripting. Ich bin ein Anfänger in dieser Sprache, also sei nett mit mir.Vergleichen zwei Sätze von Variablen Zeile für Zeile in Unix, Code nur die letzte Zeile ausgedruckt
Ich versuche, ein Vergleichsskript zu schreiben. Ich habe versucht, alle Ausgaben in Variablen zu speichern, aber nur die letzte wird gespeichert.
Beispielcode:
me:1234567
you:2345678
us:3456789
Mein Code:
#!bin/bash
while read -r forName forNumber
do
aName="$forName"
echo "$aName"
aNumber="$forNumber"
echo "$aNumber"
done < "exampleCodeFile.txt"
echo "$aNumber"
Zum ersten Mal wird alles in Ordnung ausgedruckt werden. Das zweite Echo wird jedoch nur "3456789" ausdrucken, aber nicht alle Zahlen. Gleiches mit $ aName. Dies ist ein Problem, weil ich eine andere Datei haben, die ich eine Reihe von Zahlen gespeichert $ aNumber mit, mit der gleichen Methode oben aufgeführten zu vergleichen, $ aMatcher genannt, bestehend aus:
aMatcher:
1234567
2345678
3456789
So wenn ich versuche, einen Vergleich auszuführen:
if [ "$aNumber" == "$aMatcher" ]; then
echo "match found!"
fi
Erwarteten Ausgang (mit bash -x "skript"):
'['1234567 == 1234567']'
echo "match found!"
tatsächlicher Ausgang (mit bash -x „skript“):
'['3456789 == 3456789']'
echo "match found!"
Natürlich meinem aktuellen Problem lösen wünschen würde mein Endprodukt will die Spiele aller aufzuzählen, aber ich vor alles anderes versuchen. Vielen Dank!
Gute Frage. Sie können es besser lesbar machen, indem Sie den Code als "Code" anstatt als Blockzitat formatieren. – threeve
.... Verwenden Sie das Formatierungswerkzeug '{}' oben links im Bearbeitungsfeld für markierten Text, um es als Code/Daten/Ausgabe zu formatieren. Viel Glück. – shellter