我以前做过Bash脚本,没有#它们都运行得很好!/bin/bash。

放进去有什么意义?事情会有什么不同吗?

还有,#怎么发音?我知道!发音为“bang”。

#!明显吗?


当前回答

此外,您还将在#!/bin/bash, 例如 #!/bin/bash -v -x 读这篇文章,了解更多。 https://unix.stackexchange.com/questions/124272/what-do-the-arguments-v-and-x-mean-to-bash。

其他回答

对于使用不同系统而没有现成库的人来说,它可能很有用。如果没有声明,并且脚本中有一些系统不支持的函数,则应该声明#/bin/bash。我以前在工作中遇到过这个问题,现在我只是把它作为一种实践。

“Bourne-Again shell”的Bash标准只是众多可用标准中的一种 Linux中的shell。

shell是一个接受并运行命令的命令行解释器。

Bash通常是大多数Linux发行版中的默认shell。这就是bash的原因 shell的同义词。

shell脚本通常具有几乎相同的语法,但有时也有所不同。例如,数组索引在Zsh中从1开始,而在bash中从0开始。一个脚本 写的Zsh shell将不会在bash中工作,如果它有数组。

为了避免令人不快的意外,您应该告诉解释器您的shell脚本 是为bash shell编写的。你是怎么做到的?

简单地开始您的bash脚本到#!/bin/bash

每个发行版都有一个默认shell。Bash是大多数系统的默认设置。如果您恰巧在一个具有不同默认shell的系统上工作,那么如果脚本是专门为Bash编写的,那么它们可能无法正常工作。

Bash多年来一直在从ksh和sh中获取代码。

添加# !/bin/bash作为脚本的第一行,它告诉操作系统调用指定的shell来执行脚本中接下来的命令。

#! 通常被称为"hash-bang", "she-bang"或"sha-bang"。

它被称为shebang。它由一个数字符号和一个感叹号字符(#!)组成,后面跟着到解释器的完整路径,例如/bin/bash.UNIX和Linux下的所有脚本都使用第一行中指定的解释器执行。

操作系统采用默认shell来运行shell脚本。所以在脚本的开头提到shell path,你是在要求操作系统使用那个特定的shell。它在可移植性方面也很有用。