• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Porównywanie łańcuchów (arrays) w bash

VPS Starter Arubacloud
0 głosów
2,258 wizyt
pytanie zadane 12 stycznia 2016 w Inne języki przez Pac Plus Mądrala (5,560 p.)
Hey. Problem jak w temacie. Weźmy za przykład prosty program gdzie pytamy się użytkownika o pozdrowienie dwoje osób. Co może wyglądać następująco: Kogo chcesz pozdrowić (podaj dwa imiona)?: Jeśli użytkownik poda dwa razy to samo imię, na przykład Adam, program wypisze: Widzę, że bardzo lubisz Adama W bash-u gdy próbuje porównać takie łańcuchy dostaje błąd o treści: liczba oczekiwana. Dziękuję za pomoc, Siery.

2 odpowiedzi

+1 głos
odpowiedź 12 stycznia 2016 przez Benek Szeryf (90,690 p.)
wybrane 12 stycznia 2016 przez Pac Plus
 
Najlepsza
#!/bin/bash

echo -e "\nWho do you want to greet?\nPut 2 names"
echo -e "\n+ First name:"
read fn
echo -e "\n+ Second name:"
read sn

if [ $fn == $sn ]
then
	echo -e "\tYou have to like $fn very much!\n"
else
	echo -e "\tAll the best for $fn and $sn\n"
fi

 

komentarz 12 stycznia 2016 przez Pac Plus Mądrala (5,560 p.)
Dzieki, więc '==' służy tylko do łańcuchów? Mam jeszcze pytanie jak możesz poświęcić chwilę. Jak w bash-u napisać funkcje zwracającom wartość? W moim przypadku string.
komentarz 12 stycznia 2016 przez Benek Szeryf (90,690 p.)

Operator == nie służy tylko do porównania łańcuchów. Możesz go także użyć do porównania wartości przechowywanych przez zmienne. W Bashu faktycznie nie jest łatwo zwrócić wartość. Wypróbuj następujący kod:

#!/bin/bash

CurrentYear()
{
	y=`date | awk '{print $NF}'`
	#y="2016"
	echo $y
}

var=$(CurrentYear)
echo $var


Jeśli nie masz zainstalowanego AWK, to wykorzystaj linię z komentarzem #.

komentarz 12 stycznia 2016 przez Pac Plus Mądrala (5,560 p.)
Hmm... to zwraca ostatnią wartość z funkcji? I działa w ten sam sposób z łańcuchami?
komentarz 12 stycznia 2016 przez Benek Szeryf (90,690 p.)

To zwraca wszystko to, co wypisuje funkcja za pomocą polecenia echo. Zwróć uwagę, że "2016" to łańcuch, a nie liczba typu całkowitego. Podana metoda działa z łańcuchami i liczbami. Sprawdziłem przed chwilą.

komentarz 12 stycznia 2016 przez Pac Plus Mądrala (5,560 p.)
Ach, to skróci mój skrypt o połowe ^^. Dzięki. Przedwczoraj zacząłem się uczyć bash-a i już załtomatyzowałem większość czynności które normalnie często powtarzam przy programowaniu. Magiczne narzędzie.
0 głosów
odpowiedź 12 stycznia 2016 przez Pac Plus Mądrala (5,560 p.)
Hmm... jest jakiś problem z kodowaniem znaku nawej lini przez androida. Myślałem, że takich problemów nie można mieć w przeglądarce. Byłbym wdzięczny jakby ktoś przebił się przez tą bryłe tekstu. Nie mam niestety teraz dostępu do komputera z połączeniem do internetu.

Podobne pytania

0 głosów
1 odpowiedź 729 wizyt
pytanie zadane 30 czerwca 2016 w C i C++ przez 1naswiecie Początkujący (410 p.)
+3 głosów
2 odpowiedzi 4,005 wizyt
0 głosów
0 odpowiedzi 155 wizyt

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...