Sunt foarte nou în bash și încerc să scriu primul script numit hello_world
în calea /Users/me/Study/Linux
cu conținutul scris de vim:
#! bin/bash echo Hello World
Cu toate acestea, eroarea apare atunci când este executată:
-bash: /Users/me/Study/Linux/hello_world: bin/bash: bad interpreter: No such file or directory
Am citit multe întrebări despre această problemă, dar mă simt în continuare pierdut. 🙁 Voi fi foarte recunoscător pentru ajutorul dvs.
Comentarii
Răspuns
Prima linie a scriptului bash trebuie să arate astfel.
#!/bin/bash
Aceasta se numește „linie shebang”, deoarece primele două caractere #!
sunt un shebang . Linia shebang îi spune computerului ce program executabil ar trebui să fie folosit pentru a interpreta restul scriptului. În acest caz, scrieți un script bash, dar la fel de ușor puteți scrie un script pentru python sau awk și trebuie să spuneți sistemului ce interpret să folosească în funcție de limbajul în care este scris scriptul.
Motivul pentru care linia dvs. de shebang #! bin/bash
nu funcționează este b deoarece nu ați furnizat o cale validă (de obicei, o cale absolută ) către interpret. Dacă omiteți linia inițială /
, atunci shell-ul caută bin
în directorul de lucru curent, dar nu îl găsește.
Deoarece abia ați început să învățați bash, vă sugerez să citiți o carte. Acest lucru vă va scuti de nevoia de a pune prea multe întrebări. Învățarea bash Shell, ediția a III-a de Cameron Newham este destul de bună.
Comentarii
- Rețineți că spațiul de după
#!
nu are importanță –#!/bin/bash
și#! /bin/bash
funcționează și#!bin/bash
sau#! bin/bash
va funcționa numai dacăcd /
mai întâi (deci se găsește coșul de gunoi ). Din link-ul dvs. Wikipedia " Blanks after! sunt OK "
#! /bin/bash
pentru prima linie