Portál AbcLinuxu, 11. května 2025 18:32
Řešení dotazu:
FOO=1 &
nenstaví proměnnou FOO v aktuálním shellu.)
Není nad to, když si člověk přijde na řešení sám :)
Kdybyste chtěl vědět, proč zrovna takhle to bash dělá, doporučuji zeptat se jeho autorů.
.-----------------.-----.------. | cmd | ash | bash | +-----------------+-----+------+ | sleep 60 & | 1x | 1x | | (sleep 60) & | 2x | 1x | | { sleep 60; } & | 1x | 2x | '-----------------'-----'------'Výsledky jsou překvapivé. Pokud nechceme spouštět zbytečně sub-shehll v sub-shellu, pak závorky takto raději nepoužívat, nedá se na to v různých shellech spoléhat (viz můj dotaz a (sleep 60)& , kdy mi to v bashi prošlo ). Proč bash spustí 2x sub-shell v případě složených závorek je mi zatím záhadou.
.-----------------.-----.------. | ext prg | ash | bash | +-----------------+-----+------+ | sleep 60 & | 0x | 0x | | (sleep 60) & | 1x | 0x | | { sleep 60; } & | 0x | 1x | '-----------------'-----'------' .---------------------------.-----.------. | more ext prg or pipe | ash | bash | +---------------------------+-----+------+ | (sleep 30; sleep 30) & | 2x | 1x | | { sleep 30; sleep 30; } & | 1x | 1x | '---------------------------'-----'------' .-----------------.-----.------. | f() {sleep 60} | ash | bash | +-----------------+-----+------+ | f & | 1x | 1x | | (f) & | 2x | 1x | | { f; } & | 1x | 1x | '-----------------'-----'------' .-----------------.-----.------. | builtin cmd | ash | bash | +-----------------+-----+------+ | read i & | 0x | 0x | | (read i) & | 1x | 1x | | { read i; } & | 0x | 0x | '-----------------'-----'------'Snad už je tedy vše správně, začíná mi z toho pozorování subshellů a subprocesů jít hlava kolem.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.