Portál AbcLinuxu, 10. května 2025 16:29

Dotaz: BASH nefungu cat to LABEL

22.8.2019 09:21 Zm
BASH nefungu cat to LABEL
Přečteno: 224×
Odpovědět | Admin
Ahoj,

V BASHi mi nefunguje tento jednoduchý skript, má potřebu evaluovat A/B a zahlásí divide by zero. Dá se to nějak elegantně vyřešit?
#!/bin/sh

cat << LABEL
#!/bin/sh

A=10
B=5

sleep $((A/B))

LABEL


Řešení dotazu:


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

Odpovědi

22.8.2019 09:24 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: BASH nefungu cat to LABEL
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkus escapovat ten dolar.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
22.8.2019 09:27 Radek Isa | skóre: 14
Rozbalit Rozbalit vše Re: BASH nefungu cat to LABEL
Odpovědět | | Sbalit | Link | Blokovat | Admin
divide by zero => chyba dělení nulou. Podle mě to máš někde v nějakém větším skriptu.V nějakém okamžiku se stane, že proměná B obsahuje hodnotu 0.
22.8.2019 09:35 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: BASH nefungu cat to LABEL

Na to není potřeba, aby v ní byla nula, stačí aby nebyla nastavená nebo aby v ní bylo něco, co není číslo:

mike@unicorn:~> unset B
mike@unicorn:~> echo $[A / B]
bash: A / B: division by 0 (error token is "B")
mike@unicorn:~> B=xyz
mike@unicorn:~> echo $[A / B]
bash: A / B: division by 0 (error token is "B")
22.8.2019 09:32 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: BASH nefungu cat to LABEL
Odpovědět | | Sbalit | Link | Blokovat | Admin

Viz bash(1):

If word is unquoted, all lines of the here-document are subjected to parameter expansion, command substitution, and arithmetic expansion, the character sequence \<newline> is ignored, and \ must be used to quote the characters \, $, and `.

Takže by mělo stačit první řádek přepsat na

cat <<"LABEL"
22.8.2019 10:14 Zm
Rozbalit Rozbalit vše Re: BASH nefungu cat to LABEL
Děkuji, cat <<"LABEL" mi funguje správně.

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.