Bash shell vs SH shell

Pagina: 1
Acties:
  • 228 views sinds 30-01-2008
  • Reageer

  • wigwam
  • Registratie: Oktober 2001
  • Laatst online: 25-03 18:46
Ik heb een bash scripje wat een menu afdrukt, dit werkt perfect onder de Bash shell alleen onder de SH shell werkt het niet (als ik hem start krijg ik meteen mijn prompt meteen weer terug. Zie voor het menu http://wigwam.ath.cx/menu Wat is het verschil tussen de SH shell en de BASH shell. En hoe kan ik het menu script zodanig aanpassen dat het wel gaat werken.

[ Voor 9% gewijzigd door wigwam op 30-05-2003 22:53 ]


Verwijderd

meestal (of bij mijn weten toch ) is /bin/sh ( die bedoel je toch? ) een link naar je favoriete shell.
du svaak zal /bin/sh verwijzen naar /bin/bash ..
misschien kun je is kijken met "ls -al /bin/sh" welke shell hij gebruikt in jou geval..

Verwijderd

Bash is een veel uitgebreidere versie shell die backwards compatible is met sh. Iets wat onder sh werkt, werkt onder bash, maar dus zoals je merkte niet noodzakelijkerwijs vice versa....

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Verwijderd schreef op 30 May 2003 @ 23:20:
meestal (of bij mijn weten toch ) is /bin/sh ( die bedoel je toch? ) een link naar je favoriete shell.
du svaak zal /bin/sh verwijzen naar /bin/bash ..
misschien kun je is kijken met "ls -al /bin/sh" welke shell hij gebruikt in jou geval..
/bin/sh is geen link naar je favoriete shell, maar de bourne shell, of een link naar een compatible shell, op linux vaak bash (volgens een aantal mensen een slechte keus, omdat bash niet helemaal compatible is).

  • Guru Evi
  • Registratie: Januari 2003
  • Laatst online: 30-03 14:39
* Guru Evi uses bash2 ;-)
Ik heb wel soms es last van al die verschillende shells, vooral een firewallscript die gemaakt in RH niet werkt op SuSE omdat de shell die soort variabelen precies niet ondersteunt

Pandora FMS - Open Source Monitoring - pandorafms.org


  • wigwam
  • Registratie: Oktober 2001
  • Laatst online: 25-03 18:46
Het probleem treed op in combinatie met de partimage bootfloppen. Dan werkt het menu op eens niet meer. En onder rh wel.

[ Voor 9% gewijzigd door wigwam op 31-05-2003 12:39 ]


  • igmar
  • Registratie: April 2000
  • Laatst online: 27-03 10:55

igmar

ISO20022

wigwam schreef op 30 May 2003 @ 22:51:
Ik heb een bash scripje wat een menu afdrukt, dit werkt perfect onder de Bash shell alleen onder de SH shell werkt het niet (als ik hem start krijg ik meteen mijn prompt meteen weer terug. Zie voor het menu http://wigwam.ath.cx/menu Wat is het verschil tussen de SH shell en de BASH shell. En hoe kan ik het menu script zodanig aanpassen dat het wel gaat werken.
Dat /bin/sh niet per se bash hoeft te wezen. Op een BSD bak is het vaak ksh, zoals ook bv op Solaris. Expliciet /bin/bash aanroepen is aan te raden, en zorg er ook voor dat het Bash versienummer een beetje overeenkomt.

  • wigwam
  • Registratie: Oktober 2001
  • Laatst online: 25-03 18:46
Maar partimage ondersteund standaard geen bash alleen maar de SH shell

Verwijderd

igmar schreef op 31 May 2003 @ 13:53:
[...]


Dat /bin/sh niet per se bash hoeft te wezen. Op een BSD bak is het vaak ksh, zoals ook bv op Solaris. Expliciet /bin/bash aanroepen is aan te raden, en zorg er ook voor dat het Bash versienummer een beetje overeenkomt.
Maar /bin/bash hoeft niet te bestaan. Dat kan /usr/bin/bash zijn, of ook /usr/local/bin/bash of zelfs nog iets anders. Scripts die alleen met bash werken zijn lastig om echt onder alle Unix architecturen zo te laten lopen.

  • wigwam
  • Registratie: Oktober 2001
  • Laatst online: 25-03 18:46
jammer heeft iemand toevallig niet een sh menu script ????? Die wel werkt onder sh

  • MissingDog
  • Registratie: Augustus 2002
  • Niet online
wigwam schreef op 01 juni 2003 @ 12:48:
jammer heeft iemand toevallig niet een sh menu script ????? Die wel werkt onder sh
Heb je geen google? denk dat je vast wel een goede howto of andere documentatie kunt vinden op het web.

  • igmar
  • Registratie: April 2000
  • Laatst online: 27-03 10:55

igmar

ISO20022

wigwam schreef op 31 May 2003 @ 17:05:
Maar partimage ondersteund standaard geen bash alleen maar de SH shell
Dan wordt het herschrijven. Vind eerst maar eens uit wat /bin/sh precies is, vermoedelijk ksh. Daarna pas scripts gaan aanpassen.

  • YaPP
  • Registratie: Oktober 2002
  • Laatst online: 20-03 22:09

YaPP

vdboor

/bin/sh is inderdaad een link naar /bin/bash, maar er is een *groot* verschil.

Als "bash" als "sh" word uitgevoerd. (dat kan ieder programma zien aan zijn eerste argument), zal "bash" de "sh" shell immiteren..! Dit omdat beide programma's vrijwel dezelfde functionaliteit hebben.

Zelf zie ik bash als een uitgebreide sh, maar corrigeer me hier aub als ik het mis heb.

[ Voor 23% gewijzigd door YaPP op 05-06-2003 01:34 ]

Don't take life too seriously, you won't get out alive..! ;)


  • wigwam
  • Registratie: Oktober 2001
  • Laatst online: 25-03 18:46
probleem opgelost gewoon de flop ombouwen met bash2 en probleem was opgelost

Verwijderd

Het verschilt per OS/distro wat /bin/sh is. Mijn Debian:
lrwxr-xr-x 1 root root 4 Mar 20 02:36 /bin/sh -> bash
(/bin/bash = bash2.x verder niks link oid)

Een OpenBSD en FreeBSD kist:
-r-xr-xr-x 3 root bin 315392 Mar 29 20:49 /bin/sh
-rwxr-xr-x 1 root wheel 493508 Mar 9 00:21 /bin/sh
((merk het verschil op ;)) da's echt sh, terwijl bash1 en bash2 in ports zitten)

Je kunt met sh en bash ongeveer 'hetzelfde' zo is het best mogelijk dat je voor een bepaald iets scripten best met sh kunt... maar met scripten heeft bash stukken meer meer mogelijkheden en is de syntax soms anders. Dus niet zo van 'oh ff #!/usr/local/bin/bash naar #!/bin/sh omzetten in m'n scriptje en ik weet zeker dat het werkt'. Hoeft helemaal niet te werken op zo'n moment het kan best zijn dat je het script dan enigzins aan komt te passen. Niet 100% compatible.

Het is dus ook NIET zo dat per definitie: /bin/sh = symlink naar /bin/bash. Da's erg afhankelijk van je OS/distro en evt. andere veranderen. Om welk OS/distro het hier gaat is me niet duidelijk maar problem = solved.
Pagina: 1