Portál AbcLinuxu, 10. května 2025 02:01

Dotaz: Bash a tilde

7.3.2006 12:59 jura5 | Ostrava
Bash a tilde
Přečteno: 145×
Odpovědět | Admin
Zdravím zdejší borce na bash. Pokusil jsem napsat skriptík vytvářející podle seznamu uživatelů v jejich HOME další adresáře. Pokud je ve skriptu natvrdo login-name uživatele ( např. mkdir ~franta/adresar ), příkaz se provede. Pokud je ve skriptu substituce ( mkdir ~$NAME/adresar ), tak hlásí že není adresář nebo soubor. To je vlastnost bashe nebo jsem něco nepochopil?? Díky za pomoc.
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

7.3.2006 13:07 hm
Rozbalit Rozbalit vše Re: Bash a tilde
Odpovědět | | Sbalit | Link | Blokovat | Admin
Z dokumentace k bash-i:

The order of expansions is: brace expansion, tilde expansion, parameter, variable, and arithmetic expansion and command substitution (done in a left-to-right fashion), word splitting, and filename expansion.

Podstatné je samozřejmě to, že tilde expansion je před variable expansion...
Stanislav Brabec avatar 7.3.2006 13:55 Stanislav Brabec | skóre: 45 | Praha
Rozbalit Rozbalit vše Re: Bash a tilde
Takže asi hledáte eval:
sbrabec@hammer:~> A="sbrabec" ; echo "~$A"
~sbrabec
sbrabec@hammer:~> A="sbrabec" ; eval echo "~$A"
/home/sbrabec
7.3.2006 13:09 JaSel | skóre: 17 | blog: kseles
Rozbalit Rozbalit vše Re: Bash a tilde
Odpovědět | | Sbalit | Link | Blokovat | Admin
Možná to špatně chápu já, i když za experta na bash se nepovažuju. Zkus ale za tu tildu dopsat ještě lomítko. Se mnou se bez toho lomítka bash nebaví (po pravdě řečeno jsem to bez něho do dneška nezkusil).
Stanislav Brabec avatar 7.3.2006 13:57 Stanislav Brabec | skóre: 45 | Praha
Rozbalit Rozbalit vše Re: Bash a tilde
Obojí je správně: ~/franta znamená adresář franta v mém domovském adresáři, ~franta znamená domovský adresář uživatele franta.
7.3.2006 13:28 Pip
Rozbalit Rozbalit vše Re: Bash a tilde
Odpovědět | | Sbalit | Link | Blokovat | Admin
Co takhle pouzit ${HOME}.

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.