Portál AbcLinuxu, 10. května 2025 09:34

Dotaz: SHELL: jak v klasickem shellu na pole?

3.1.2011 00:41 Honza
SHELL: jak v klasickem shellu na pole?
Přečteno: 925×
Odpovědět | Admin
Zdravím, měl bych jeden dotaz jak v klasickem a starém shellu vytvořím a naplním pole. Normální příkazy fungují jen pod BASH např:
#!/bin/sh

arr[0]=Hello
arr[1]=World
echo ${arr[*]}
vyhodi hlasku:
./test: ./test: 3: arr[0]=Hello: not found
./test: ./test: 4: arr[1]=World: not found
./test: ./test: 5: Syntax error: Bad substitution

Lze nějakým způsobem využívat pole i pod SHELLem ?. Děkuji

Ř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

Max avatar 3.1.2011 01:07 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: SHELL: jak v klasickem shellu na pole?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Co to je klasický shell? A co to je starý shell?
BASH = shell - jeden z nejpoužívanějších a je jako výchozí v hodně distribucích a tvůj příklad samozřejmě pod ním funguje.
Zdar Max
Měl jsem sen ... :(
3.1.2011 02:12 Honza
Rozbalit Rozbalit vše Re: SHELL: jak v klasickem shellu na pole?
ahoj, doufam že se to nezvrhne ve slovičkaření - BASH neni shell, bash je shellový interpreter neboli Bourne again shell - ten je založen na Bourne Shellu (sh). Ted k skriptu - ten který uvádím v příkladu funguje POUZE POD BASH (neboli Bourne again shell) ovšem nikoliv v SH (Bourne Shellu) => zmíněna chybová hláška...
3.1.2011 02:21 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: SHELL: jak v klasickem shellu na pole?
BASH neni shell

Tak to ne. Bash je shell. Stejně jako je shell Bourne shell, ksh, zsh, csh, tcsh a řada dalších.

3.1.2011 02:28 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: SHELL: jak v klasickem shellu na pole?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pole jsou rozšíření bashe, takže v klasickém Bourne shellu je nenajdete. Bylo by možné je napodobit pomocí ${!var}, což ale sh IIRC taky neumí, nebo pomocí eval (to snad ano).
3.1.2011 02:32 Honza
Rozbalit Rozbalit vše Re: SHELL: jak v klasickem shellu na pole?
děkuji moc to jsem potřeboval potvrdit - vsude co googlim jak muzu pisou The Bourne shell does not have arrays. Jeste me napadlo to obejit cyklem ve kterem se budou dynamicky vytvařet promenne prijde mi to ovšem jako prasarnička vetšiho kalibru naštěsti by nemělo byt položek vice jak 100 => tudiž 100 promennych :-(
4.1.2011 07:05 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: SHELL: jak v klasickem shellu na pole?
A na co potřebujete pole? Nestačí do proměnné dát "Hello world" a pak použít rozdělení podle mezer (nebo jakéhokoliv jiného znaku)? Případně použít řádky dočasného souboru?
In Ada the typical infinite loop would normally be terminated by detonation.
15.8.2013 11:23 Libor
Rozbalit Rozbalit vše Re: SHELL: jak v klasickem shellu na pole?
Odpovědět | | Sbalit | Link | Blokovat | Admin
misto: echo ${arr[*]} zkus: echo "${arr[@]}

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.