Kod: Zaznacz cały
myusername@mycompname:~$ blah="abcNetia123"
myusername@mycompname:~$ expr index "$blah" Netia
1
myusername@mycompname:~$ expr index "$blah" t
6
myusername@mycompname:~$ expr index "$blah" N
4
myusername@mycompname:~$ expr index "$blah" Ne
4
myusername@mycompname:~$ expr index "$blah" Net
4
myusername@mycompname:~$ expr index "$blah" Neti
4
myusername@mycompname:~$ expr index "$blah" Netia
1
myusername@mycompname:~$ expr index "$blah" Netia1
1
myusername@mycompname:~$ expr index "$blah" a1
1
myusername@mycompname:~$ expr index "$blah" abcNN
1
Nie rozumiem dlaczego potrafi znaleźć indeks "expr index "$blah" Neti", ale już "expr index "$blah" Netia" się nie powodzi. Zadziałało dopiero z apostrofem (chociaż i tutaj chyba jakoś inaczej działą np. pojedynczy apostrof i znak tyldy, który wizualnie wygląda prawie tak samo). (Chętnie się dowiem, dlaczego jest to w taki sposób traktowane, jednak drugie pytanie poniżej jest dla mnie dużo bardziej istotne).
Również ten wynik traktuje tekst ze spacjami jako elementy tablicy, a nie tekst:
Kod: Zaznacz cały
myusername@mycompname:~$ varCurl="abc def curl: ( xyz asdf"
myusername@mycompname:~$ expr index '$varCurl' "curl: ("
4
myusername@mycompname:~$ expr index "$varCurl" "curl: ("
3
myusername@mycompname:~$ echo $varCurl
abc def curl: ( xyz asdf
Spodziewam się wartości 9 lub 10, a nie 3 lub 4, dla tej konkretnej zmiennej z pierwszej linijki kodu.