Portál AbcLinuxu, 13. července 2025 13:14


Dotaz: IF a bash

25.11.2008 16:31 Janko
IF a bash
Přečteno: 731×
Odpovědět | Admin

Ahoj, prosim o pomoc zkusene uzvatele s touto podminkou

mam podminku

f [ $aaa = "ahoj" ]; then 

a potreboval bych to opravit aby ta podminky zjistila ne jstli prom. aaa obsahuje text ahoj ale jestli pro. aaa obsahuje tecku. Muze mi s tim nekdo pomoci? Dekuji

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

25.11.2008 17:46 ojo
Rozbalit Rozbalit vše Re: IF a bash
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokial som spravne pochopil otazku, tak potom:

if [ "$aaa" = "." ]; then
25.11.2008 17:53 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: IF a bash
Odpovědět | | Sbalit | Link | Blokovat | Admin
jstli prom. aaa obsahuje text ahoj

Tenhle kus kódu zjišťuje, jestli je proměnná $aaa rovna textu ahoj - pro otestování přítomnosti se musí použít např. grep:

if echo "$aaa" | grep 'ahoj' >/dev/null; then
...

a pro tečku použít grep '\.'...

I am always ready to learn although I do not always like to be taught. (W. Churchill)
25.11.2008 18:56 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: IF a bash

Nemusí:

  case "$aaa" in
    *.*)
      # je tam
      ;;
    *)
      # není tam
      ;;
  esac
25.11.2008 19:05 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: IF a bash
Staci aj if. if ma v bashi rovnaku silu ako case. Wildcardy (*?[]^...) mozu byt iba na pravej strane.
if [[ "$aaa" == *.* ]]; then
    echo hura
fi
If you hold a Unix shell up to your ear, you can you hear the C.
25.11.2008 19:48 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: IF a bash
Jenže ta verze se zdvojenými hranatými závorkami je bashismus, case by měl fungovat i v klasickém Bourne shellu.
26.11.2008 20:51 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: IF a bash
Povodna otazka znie "IF a bash".

Taktiez ak sa niekto spyta na radu ohladom C-cka, nebudem kritizovat nejake riesenie len preto, ze nefunguje v Pythone.
If you hold a Unix shell up to your ear, you can you hear the C.
26.11.2008 21:48 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: IF a bash
Tak proč jste neprotestoval proti řešení používajícímu grep? :-)
26.11.2008 23:10 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: IF a bash
Skutocne odo mna cakas, ze ako ucitelka tu budem komentovat kazdy jeden prispevok a pisat "protestujem!" alebo "vyborne!" ???

Preco by som mal protestovat?? (to uz ten tvoj prispevok zacinajuci na Jenze... mi pride viac ako protest).
If you hold a Unix shell up to your ear, you can you hear the C.
25.11.2008 19:35 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: IF a bash
At uz tecku hledate jakkoliv, grep se kazdopadne hodi na slozitejsi regexpy. Je ale vhodnejsi ho pustit s prepinacem -q misto redirectu do /dev/null.
In Ada the typical infinite loop would normally be terminated by detonation.
25.11.2008 23:36 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: IF a bash
prepinacem -q
Díky za tip
I am always ready to learn although I do not always like to be taught. (W. Churchill)
25.11.2008 20:01 Janko
Rozbalit Rozbalit vše Re: IF a bash
Odpovědět | | Sbalit | Link | Blokovat | Admin

Super, diky moc vsem za rady.. ;) jste moc hodni..

a prosim kdyz davam echo "Nazdar bazar"  a chtel bych to bazar treba cervene odlisit? je to jednoduche?

 

dekuji ;)

25.11.2008 23:32 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: IF a bash
Jednoduché to je, ale vyhýbal bych se tomu (ne každý má Linux a xterm). A občas je vhodné zkusit vyhledávání (3. odkaz).
I am always ready to learn although I do not always like to be taught. (W. Churchill)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.