shell script: bad interpreter: No such file or directory when using pwd

后端 未结 11 1840
抹茶落季
抹茶落季 2021-02-07 09:30

I want to go through the files in a directory with a for loop but this comes up.

echo: bad interpreter: No such file or directory

code:

11条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2021-02-07 10:04

    The echo: bad interpreter: No such file or directory is most likely coming from the first line, #!... which is called shebang line.

    About the #!... line

    This line hints the shell what interpreter to use to run the file. That can be e.g. bash, or sh (which is (roughly) a subset so a lot of things won't work), or basically anything that can execute the file content - Perl, Python, Ruby, Groovy...

    The line points the system in cases like calling the script directly when it's executable:

    ./myScript.sh
    

    It is also often used by editors to recognize the right syntax highlighting when the file has no suffix - for instance, Gedit does that.

    Solution

    To override the line, feed the script to Bash as a parameter:

    bash myScript.sh
    

    Or, you can 'source' it, which means, from within a Bash shell, do either of

    source myScript.sh
    . myScript.sh
    

    which will work (roughly) as if you pasted the commands yourself.

提交回复
热议问题