Jakkolwiek bym nie kopiował - efekt ten sam - czy zaznaczając przez przeciąganie po kodzie myszką z wciśniętym lewym klawiszem, czy przez trzykrotne kliknięcie w polu z kodem i potem opcja Kopiuj z menu kontekstowego. Wklejam do pustego okna edytora KWrite przez Ctrl-v i zapisuję pod nazwą
Skrypt10. Uruchamiam komendą
Wiem, że są 2 schowki i do jednego tekst trafia przez samo zaznaczenie (i wkleja się środkowym klawiszem myszy), a do drugiego przez Ctrl-c albo opcję Kopiuj (i potem Ctrl-v albo Wklej), także z tym na pewno nic nie namieszałem.
Jakby nie patrzeć, wygląda na to, że błąd jest w instrukcji
if, bo
echo zwraca prawidłową zawartość żądanej linii. Nie wiem, czy to nie jest kwestia niewidocznego przecież znaku końca linii. Próbowałem:
Kod: Zaznacz cały
#!/bin/bash
q=309
x=`sed -n "$q"p < tmp1 | tr -d '\n'`
echo $x
if [ "$x" = "nazwa" ]; then
echo 1
else
echo 0
fi
ale niestety, też zwraca 0 zamiast 1.
Ewidentnie błąd jest gdzieś w
if, bo teraz męczę się z takim czymś:
Kod: Zaznacz cały
while read line;do
ontlnr=`echo $line | awk '{gsub(";;;;;;numer ","")}1' | awk '{gsub(";;","")}1'`
echo $ontlnr
otlnr=`echo $ontlnr | cut -d: -f2`
echo $otlnr
if [ "$otlnr" = "2" ];then
echo tak
fi
done < tmp2
i zwraca:
Kod: Zaznacz cały
325:26
26
359:26
26
393:2
2
461:2a
2a
495:26
26
529:26
26
a powinno po wyświetleniu liczby
2 będącej wartością zmiennej
otlnr wyświetlić słowo
tak, ale go nie wyświetla. Proszę o pomoc, bo nie mam pojęcia, co robię źle...