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
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 ducd /
først (så bin findes ). Fra dit Wikipedia-link " Tomt efter! er OK "
#! /bin/bash
til første linje