Portál AbcLinuxu, 8. května 2025 17:53

Dotaz: Objasnění příkazu

21.1.2014 22:07 LaiK
Objasnění příkazu
Přečteno: 244×
Odpovědět | Admin
Ahoj, jaký je rozdíl mezi
#!/bin/bash  
a
#!/bin/sh  
Co mám použítvat? 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

Josef Kufner avatar 21.1.2014 22:17 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Objasnění příkazu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Rozdíl je v tom, zda chceš, aby tvůj skript byl interpretován Bashem nebo starým Bourne shellem, což je původní shell na Unix Version 7 z roku 1977 (viz učebnice dějepisu).

V moderních systémech obvykle bývá /bin/sh symlinkem na bash nebo dash (lehčí alternativa k bash). Může to však být i něco jiného, třeba busybox nebo nějaký proprietární implementace. Takže pokud nepoužíváš vychytávky bashe a chceš mít skript přenositelný, použij /bin/sh.

Za zmínku také stojí, že např. FreeBSD má bash nainstalovaný v /usr/bin/bash, takže tam ti #!/bin/bash nebude fungovat.
Hello world ! Segmentation fault (core dumped)
21.1.2014 22:20 LaiK
Rozbalit Rozbalit vše Re: Objasnění příkazu
Diky za info a co myslíš tím "pokud nepoužíváš vychytávky bashe" ? Například?
Josef Kufner avatar 21.1.2014 22:58 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Objasnění příkazu
Hello world ! Segmentation fault (core dumped)
22.1.2014 08:30 lofcek
Rozbalit Rozbalit vše Re: Objasnění příkazu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Aha .. starucicky /bin/sh (nech mu je zem lahka) sa uz v podstate nepouziva. Vacsinou je to len symbolicka linka - na ubuntu na dash, na vacsine ostatnym linuxov na bash.

Vynimmkou pre pamatnikov je Solaris 10 - tam je dodnes zachovany stary bourne shell. Tam su podobne vykopavky bezne a preto programovat nieco v sheli na Solarise je bozie dopustenie.

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.