Nowe posty

Autor Wątek: składnia kodu  (Przeczytany 1555 razy)

filon92

  • Gość
składnia kodu
« dnia: 2013-07-05, 10:54:07 »
Witam serdecznie,
Czy ktoś mógł by mi wytłumaczyć z jakich funkcji, poleceń korzysta następujący kod
argument="${s//[^a]}"
wiem, że to s//[^a] przeszukuje zmienna w poszukiwaniu liter a, ale to jest jakieś konkretne polecenie, funkcja? dlaczego tam są te znaczki //, dlaczego coś takiego [^a]?
Dziękuję za pomoc

Offline vanhelzing

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 314
    • Zobacz profil
składnia kodu
« Odpowiedź #1 dnia: 2013-07-05, 11:47:53 »
Poczytaj:
http://tldp.org/LDP/abs/html/string-manipulation.html

W Twoim przypadku:
${string//substring/replacement}
Zamienia wszystkie wystąpienia "substring" na "replacement". Podwójny slash oznacza wszystkie wystąpienia, pojedynczy tylko pierwsze.

"string" u Ciebie to $s.
"substring" to "[^a]" (znaki, które nie są "a").
"replacement" jest pusty.

Zapis oznacza: zamień wszystkie znaki w zmiennej "s", które nie są "a" ([^a] - ptaszek przed a oznacza negację) na nic (replacement nie jest ustawiony).

s="abbbasafa"
echo ${s//[^a]}
da wynik "aaaa"

s="abbbasafa"
echo ${s//[^a]/-}
da wynik "a---a-a-a" (zamień wszystkie znaki niebędące "a" na znak myślnika "-")

s="abbbasafa"
echo ${s//[^as]/.}
da wynik "a...asa.a" (zamień wszystkie znaki niebędące "a" ani "s" na znak kropki ".")

itd.

filon92

  • Gość
składnia kodu
« Odpowiedź #2 dnia: 2013-07-05, 11:51:24 »
dziękuję !!