Kör bash-fil med Error bin / bash: dålig tolk: Ingen sådan fil eller katalog

Jag är väldigt ny på att bash och försök skriva det första skriptet med namnet hello_world i sökvägen till /Users/me/Study/Linux med innehållet skrivet av vim:

#! bin/bash echo Hello World 

Felet uppstår dock när det körs:

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

Jag har läst många frågor i frågan men känner mig fortfarande helt förlorad. 🙁 Jag är väldigt tacksam för din hjälp.

Kommentarer

  • försök #! /bin/bash för första raden
  • @TedWrigley Thx, det fungerar; men varför?
  • Shebangen (#!) tar en väg till en körbar, och i Unix / linux måste vägar börja med ett snedstreck.

Svar

Den första raden i ditt bash-skript måste se ut så här.

#!/bin/bash 

Detta kallas en ”shebang-linje” eftersom de två första tecknen #! är en shebang . Shebang-raden berättar för datorn vilket körbart program som ska användas för att tolka resten av skriptet. I det här fallet skriver du ett bash-skript, men du kan lika gärna skriva ett skript för python eller awk, och du måste berätta för systemet vilken tolk som ska användas baserat på vilket språk manuset är skrivet på.

Anledningen till att din shebang-rad #! bin/bash fungerar inte b eftersom du inte har gett en giltig sökväg (vanligtvis en absolut sökväg ) till tolk. Om du utelämnar det initiala snedstrecket / så letar skalet efter bin i den aktuella arbetskatalogen men hittar det inte.

Eftersom du precis börjat lära dig bash, föreslår jag att du läser en bok. Detta sparar dig från att behöva ställa för många frågor. Att lära sig bash Shell, 3: e upplagan av Cameron Newham är ganska bra.

Kommentarer

  • Observera att utrymmet efter #! är oviktigt – #!/bin/bash och #! /bin/bash båda arbete och #!bin/bash eller #! bin/bash fungerar bara om du cd / först (så finns bin ). Från din Wikipedia-länk " Tomt efter! är OK "

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *