如果不在前面输入“bash”,Bash 脚本将不会运行

mut*_*y91 12 bash

在我们的学校系统中,我们无需键入bashcsh无需说明脚本类型即可运行脚本文件。但是,在 Ubuntu 上,我需要输入bash script.bash例如。这在 Ubuntu 中总是必要的,还是我可以更改的一些设置?

LGB*_*LGB 18

  1. 确保使用./script完整路径或其他任何内容启动脚本。只是script可能不起作用(如果目录在 中$PATH,它会起作用,例如/usr/bin),因为在 UNIX 系统上,将当前目录放在路径中并不是一种习惯(出于安全原因,这很好!)

  2. 确保脚本是可执行的,例如:chmod +x script将使其可执行。

  3. 确保您#!/bin/bash在脚本中作为第一行。还要确保它不是用某种 Windows 编辑器编辑的,因为那些经常使用 eol(行尾)的“DOS 类型”,这与 UNIX 不同(如果上面的清单没问题,但你得到了“坏解释器:没有这样的文件或目录”左右,即使它是 /bin/bash,这通常也是原因,因为不可打印 - 所以你通常看不到它 - \r 将被视为的一部分解释器的路径)

其他人已经提到:重要的是,/bin/bash如果您使用 bash 功能,它也/bin/sh被符号链接到/bin/bash,但现在(据我所知)它的符号链接dash不会提供 bash 兼容性,只有 POSIX sh。这很重要,即使我们公司非常昂贵的软件也有这个问题:脚本包含#!/bin/sh在第一行,但它也取决于 bash 功能。