Portál AbcLinuxu, 10. května 2025 06:02

Dotaz: Bash: Jak ověřit jestli první znak není -?

David Watzke avatar 4.1.2006 18:43 David Watzke | skóre: 74 | blog: Blog... | Praha
Bash: Jak ověřit jestli první znak není -?
Přečteno: 196×
Odpovědět | Admin
Ahoj. Potřebuju v Bashi ověřit zda první písmeno v proměnný není -, nevíte jak to udělat? Chci tím trochu zabezpečit skript, mohlo by to udělat neplechu...
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

4.1.2006 18:53 #Tom
Rozbalit Rozbalit vše Třeba tak
Odpovědět | | Sbalit | Link | Blokovat | Admin
#!/bin/bash

function ma_pomlcku() {
  [ "${1:0:1}" == "-" ]
  return $?
}

function test_pomlcky() {
  if ma_pomlcku "$1"; then
    echo Řetětec \"$1\" začíná pomlčkou
  else
    echo Řetězec \"$1\" pomlčkou nezačíná
  fi
}

VAR1="- pomlčka je přítomna"
VAR2="pomlčka není přítomna"

test_pomlcky "$VAR1"
test_pomlcky "$VAR2"
David Watzke avatar 4.1.2006 18:56 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Třeba tak
Dík. :-) Btw, už jsem někde ${1:0:1} četl, ale pořád mi nejde do hlavy co to je. :/
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
David Watzke avatar 4.1.2006 18:57 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Třeba tak
Že by to znamenalo "někde v $1"?
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
4.1.2006 19:07 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Třeba tak
Ne "někde" ale vrať 1 znak od prvního (tj. s indexem 0) v proměnné $1.
When your hammer is C++, everything begins to look like a thumb.
4.1.2006 23:18 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Třeba tak
bash(1), hledejte parameter expansion nebo rovnou substring expansion.
4.1.2006 19:05 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Bash: Jak ověřit jestli první znak není -?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jinak RTFM :-D
When your hammer is C++, everything begins to look like a thumb.
David Watzke avatar 4.1.2006 19:09 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Bash: Jak ověřit jestli první znak není -?
Mně přece bylo jasný, že jakmile mi to někdo napíše, hned si vzpomenu, ale to bych nebyl já. :-( A dík za to, jsou tam pěkný věci. :-)
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon

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.