Portál AbcLinuxu, 28. července 2025 12:09


Dotaz: bash - ciselna promena

20.2.2007 22:10 dan | skóre: 9 | blog: paranoia | JO60WA
bash - ciselna promena
Přečteno: 178×
Odpovědět | Admin
Nedari se mi naplnit ciselnou promennou aktualnim tydnem
dan@holly:~$ declare -i WEEK; WEEK=$(date +%V)
bash: 08: value too great for base (error token is "08")
sice jsem k tomu vygooglil jakesi reseni, ale ani tam pouzity priklad mi nefunguje
dan@holly:~$ cat $(([10#08]+2))
bash: [10#08]+2: syntax error: operand expected (error token is "[10#08]+2")
Jelikoz nerozumim podstate, jak odstranit nulu, nedari se mi pohnout z mista.
Víra se nikdy nezrodí jako výsledek racionální argumentace
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

20.2.2007 22:26 Pavel1 | skóre: 33
Rozbalit Rozbalit vše Re: bash - ciselna promena
Odpovědět | | Sbalit | Link | Blokovat | Admin
Protože tam je chyba, chybý tam $, ale stejně je to zbytečně složité: cat $(($[10#08]+2))

Zkus toto:
declare -i WEEK; WEEK=$[10#$(date +%V)]; echo $WEEK
20.2.2007 22:30 Marble | skóre: 27 | blog: marble
Rozbalit Rozbalit vše Re: bash - ciselna promena
The old format $[expression] is deprecated and will be removed in upcoming versions of bash.

V kazdem pripade ale tady IMO nema aritmeticka expanze zadny vyznam, stejne je to jen jedno cislo.
20.2.2007 22:39 Pavel1 | skóre: 33
Rozbalit Rozbalit vše Re: bash - ciselna promena
The old format $[expression] is deprecated and will be removed in upcoming versions of bash.
To je sice pravda, ale je to kratší (a jestli se to bude rušit tak dlouho, jako ifconfig ...)
20.2.2007 22:42 Marble | skóre: 27 | blog: marble
Rozbalit Rozbalit vše Re: bash - ciselna promena
:) Jasne, ja jen verzi s hranatymi zavorkami neznal a tohle byla prvni veta, ktera na me k "$[" vypadal z manualu.
20.2.2007 22:31 Pavel1 | skóre: 33
Rozbalit Rozbalit vše Re: bash - ciselna promena
Jo, tam nic nepočítáme, stačí WEEK=10#$(date +%V);
20.2.2007 22:28 Marble | skóre: 27 | blog: marble
Rozbalit Rozbalit vše Re: bash - ciselna promena
Odpovědět | | Sbalit | Link | Blokovat | Admin
Viz manual k bashi. Pokud je promenna deklarovana jako ciselna, chape se nula na zacatku cisla jako implicitni urceni osmickove soustavy. Explicitne se da soustava cisla urcit pomoci 10# (apod.) pred samotnym cislem. Reseni je tedy jednoduse toto:

# declare -i WEEK; WEEK=10#$(date +%V);
20.2.2007 22:51 dan | skóre: 9 | blog: paranoia | JO60WA
Rozbalit Rozbalit vše Re: bash - ciselna promena
...diky za vysvetleni, uz mi to dava smysl.
Víra se nikdy nezrodí jako výsledek racionální argumentace

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.