Udførelse af bash-fil med Error bin / bash: dårlig tolk: Ingen sådan fil eller mappe

Jeg er meget ny på bash og prøv at skrive det første script med navnet hello_world i stien til /Users/me/Study/Linux med indholdet skrevet af vim:

#! bin/bash echo Hello World 

Imidlertid opstår fejlen, når den udføres:

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

Jeg har læst mange spørgsmål om problemet, men føler mig stadig helt tabt. 🙁 Jeg vil være meget taknemmelig for din hjælp.

Kommentarer

  • prøv #! /bin/bash til første linje
  • @TedWrigley Thx, det fungerer; men hvorfor?
  • Shebang (#!) tager en vej til en eksekverbar, og i Unix / linux skal stier begynde med et skråstreg.

Svar

Den første linje i dit bash-script skal se sådan ud.

#!/bin/bash 

Dette kaldes en “shebang-linje”, fordi de to første tegn #! er en shebang . Shebang-linjen fortæller computeren, hvilket eksekverbart program der skal bruges til at fortolke resten af scriptet. I dette tilfælde skriver du et bash-script, men du kan lige så let skrive et script til python eller awk, og du skal fortælle systemet, hvilken tolk der skal bruges, baseret på hvilket sprog scriptet er skrevet på.

Årsagen til, at din shebang-linje #! bin/bash virker ikke er b fordi du ikke har angivet en gyldig sti (typisk en absolut sti ) til tolken. Hvis du udelader den indledende skråstreg /, ser skallen efter bin i den aktuelle arbejdsmappe, men finder den ikke.

Da du lige er begyndt at lære bash, foreslår jeg at læse en bog. Dette sparer dig for at skulle stille for mange spørgsmål. At lære bash Shell, 3. udgave af Cameron Newham er ganske god.

Kommentarer

  • Bemærk, at mellemrummet efter #! ikke er vigtigt – #!/bin/bash og #! /bin/bash begge arbejde og #!bin/bash eller #! bin/bash fungerer kun, hvis du cd / først (så bin findes ). Fra dit Wikipedia-link " Tomt efter! er OK "

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *