找不到.sh文件

com*_*tea 8 shell ubuntu sh

我正在尝试在终端上执行test.sh.

我的test.sh位于/ Home/monty文件夹中,我将其设为可执行文件:

chmod 755 test.sh
Run Code Online (Sandbox Code Playgroud)

我尝试使用:$./ test.sh执行它我收到一个错误:

bash: ./test.sh: /usr/bin/bash: bad interpreter: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我尝试在终端上执行此操作:

$ PATH=$PATH:/Home/monty
Run Code Online (Sandbox Code Playgroud)

但无济于事.我该如何解决这个问题?

enr*_*cis 14

你可能设置了错误的shabang.在ubuntu中,bash通常位于/bin/bash文件的顶部,你应该有:

#!/bin/bash
Run Code Online (Sandbox Code Playgroud)

代替:

#!/usr/bin/bash
Run Code Online (Sandbox Code Playgroud)

运行脚本的另一种方法是告诉bash(或sh)执行它:

bash ./test.sh
Run Code Online (Sandbox Code Playgroud)


小智 6

由于我的脚本是在 Windows 中编辑的,因此我通过将行尾从 CRLF 更改为 LF 来解决该问题。

  • 您可以在 Notepad++ Edit->EOL Conversion->Unix (LF) 中执行此操作(在 Windows 中) (3认同)
  • 这可能使我免于数小时的沮丧。谢谢。 (3认同)