Portál AbcLinuxu, 14. května 2025 02:13

Dotaz: Bash - zjistit, zda je proměnná číslo

19.8.2008 12:13 bash
Bash - zjistit, zda je proměnná číslo
Přečteno: 474×
Odpovědět | Admin
Ahoj. Porovnávám dvě čísla, z nichž to první se dostává způsobem 'cat /cislo'. Problém je, když soubor /cislo neexistuje. Pak skript spadne. Jak zjistit, zda je proměnná číslo?
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

19.8.2008 12:36 petr
Rozbalit Rozbalit vše Re: Bash - zjistit, zda je proměnná číslo
Odpovědět | | Sbalit | Link | Blokovat | Admin
Spis byste mel otestovat, jestli ten soubor existuje.
19.8.2008 12:54 bash
Rozbalit Rozbalit vše Re: Bash - zjistit, zda je proměnná číslo
To dělám, jenže na pozadí běží další skript, který ten soubor občas vytváří a maže. Zádrhel je v tom, že soubor otestuju, zda existuje a potom ho přečtu přes cat, ale mezi těmito kroky se soubor často odstraní a proto skript spadne. Proto ho chci nejdřív přečíst a pak zjistit obsah.
19.8.2008 13:15 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Bash - zjistit, zda je proměnná číslo
No vzhledem k tomu, že mezi testem na existenci souboru a jeho pokusem o čtení může běžet cokoliv, nemá v tomto případě onen test žádný význam. Co zkusit spíš
if [[ ! "$(cat /cislo 2> /dev/null)" ]]; then
  echo "fallback pokud /cislo neexistuje"
fi
When your hammer is C++, everything begins to look like a thumb.
19.8.2008 13:17 diverman | skóre: 32 | blog: život s tučňáčkem
Rozbalit Rozbalit vše Re: Bash - zjistit, zda je proměnná číslo
To dělám, jenže na pozadí běží další skript, který ten soubor občas vytváří a maže. Zádrhel je v tom, že soubor otestuju, zda existuje a potom ho přečtu přes cat, ale mezi těmito kroky se soubor často odstraní a proto skript spadne. Proto ho chci nejdřív přečíst a pak zjistit obsah.
Tam ti vznika race condition
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
David Watzke avatar 19.8.2008 13:10 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Bash - zjistit, zda je proměnná číslo
Odpovědět | | Sbalit | Link | Blokovat | Admin
cislo=123
[[ "$cislo" =~ ^[0-9]+$ ]]
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
19.8.2008 13:40 bash
Rozbalit Rozbalit vše Re: Bash - zjistit, zda je proměnná číslo
Díky. Tohle je to co jsem potřeboval.

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.