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.
#!
niet belangrijk is –#!/bin/bash
en#! /bin/bash
beide work en#!bin/bash
of#! bin/bash
werken alleen als je eerstcd /
bent (zodat bin wordt gevonden ). Van uw Wikipedia-link " Spaties erna! zijn OK "