Bash-bestand uitvoeren met fout bin / bash: slechte interpreter: bestand of map bestaat niet

Ik ben erg nieuw voor bash en probeer het eerste script te schrijven met de naam hello_world in het pad van /Users/me/Study/Linux met de inhoud geschreven door vim:

#! bin/bash echo Hello World 

De fout treedt echter op wanneer deze wordt uitgevoerd:

-bash: /Users/me/Study/Linux/hello_world: bin/bash: bad interpreter: No such file or directory 

Ik heb veel vragen over de kwestie gelezen, maar voel me nog steeds totaal verloren. 🙁 Ik “Ik ben erg dankbaar voor je hulp.

Reacties

  • probeer #! /bin/bash voor de eerste regel
  • @TedWrigley Thx, dat werkt; maar waarom?
  • De shebang (#!) neemt een pad naar een uitvoerbaar bestand, en in Unix / linux moeten paden beginnen met een schuine streep.

Answer

De eerste regel van je bash-script moet er als volgt uitzien.

#!/bin/bash 

Dit wordt een “shebang line” genoemd omdat de eerste twee tekens #! een shebang . De shebang-regel vertelt de computer welk uitvoerbaar programma moet worden gebruikt om de rest van het script te interpreteren. In dit geval schrijft u een bash-script, maar u kunt net zo goed een script voor python of awk, en je moet het systeem vertellen welke tolk je moet gebruiken op basis van de taal waarin het script is geschreven.

De reden dat je shebang-regel #! bin/bash werkt niet is b Omdat u “geen geldig pad (doorgaans een absoluut pad ) naar de interpreter hebt opgegeven. Als je de eerste slash / weglaat, dan zoekt de shell naar bin in de huidige werkdirectory, maar vindt deze niet.

Aangezien je net begint met het leren van bash, raad ik je aan een boek te lezen. Zo hoef je niet te veel vragen te stellen. Het leren van de bash Shell, 3e editie door Cameron Newham is redelijk goed.

Reacties

  • Houd er rekening mee dat de spatie achter de #! niet belangrijk is – #!/bin/bash en #! /bin/bash beide work en #!bin/bash of #! bin/bash werken alleen als je eerst cd / bent (zodat bin wordt gevonden ). Van uw Wikipedia-link " Spaties erna! zijn OK "

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *