Bash #/bin/sh和#之间有什么区别/垃圾箱/垃圾箱?
Bash #/bin/sh和#之间有什么区别/垃圾箱/垃圾箱?,bash,shell,sh,Bash,Shell,Sh,#/bin/sh和#之间有什么区别/shell脚本文件中的bin/sh?和#/bin/bash? 我不熟悉shell脚本,我想创建一个shell脚本文件来运行代码。在Linux(和其他一些系统)上,#(称为且不带空格)是某个可执行脚本的第一行,紧接着是某个可执行文件(称为解释器)时,就可以理解它 如果您使用Linux,请阅读 空间(实际上缺少大部分空间)很重要。 您可以编写一个以#开头的可执行脚本/usr/bin/python。用于使其可执行并查看。您还可以有一些可执行脚本 在一些Linux发行
#/bin/sh
和#之间有什么区别/shell脚本文件中的bin/sh?
和#/bin/bash
?
我不熟悉shell脚本,我想创建一个shell脚本文件来运行代码。在Linux(和其他一些系统)上,#当代码>(称为且不带空格)是某个可执行脚本的第一行,紧接着是某个可执行文件(称为解释器)时,就可以理解它
如果您使用Linux,请阅读
空间(实际上缺少大部分空间)很重要。
您可以编写一个以#开头的可执行脚本/usr/bin/python
。用于使其可执行并查看。您还可以有一些可执行脚本
在一些Linux发行版上,/bin/sh
是对/bin/bash
(即)的一个调用。但在其他网站上,请点击/bin/dash
(参见网站)。解释了它们之间的一些差异
GNUBash有一个记录在案的行为。读吧
而GNUBash是。
因此您可以研究它的源代码并改进它
另外,dash
也是开源的。您可以研究它的源代码并加以改进
然后再读一遍
请注意,/bin/sh
记录在POSIX标准中
我最喜欢的Linux shell是。您可以尝试(用C++、开源代码编码),并设置登录shell(参见和…)< /P>
作为练习,你甚至可以自己写。你可以在里面用。另见和
通过阅读您最喜欢的shell的源代码,您肯定会学到很多东西。
某些Shell接受(请参见和…)。你可以给他们写一本
我想创建一个shell脚本文件来运行代码
为此,我建议同时使用和。但是要保持shell脚本的小规模。对于大型脚本(超过几百行),请使用比GNUBash更好的脚本
在某些情况下,会生成一个shell脚本。这种生成器的一个例子是在Linux(和其他一些系统)上的#当代码>(称为且不带空格)是某个可执行脚本的第一行,紧接着是某个可执行文件(称为解释器)时,就可以理解它
如果您使用Linux,请阅读
空间(实际上缺少大部分空间)很重要。
您可以编写一个以#开头的可执行脚本/usr/bin/python
。用于使其可执行并查看。您还可以有一些可执行脚本
在一些Linux发行版上,/bin/sh
是对/bin/bash
(即)的一个调用。但在其他网站上,请点击/bin/dash
(参见网站)。解释了它们之间的一些差异
GNUBash有一个记录在案的行为。读吧
而GNUBash是。
因此您可以研究它的源代码并改进它
另外,dash
也是开源的。您可以研究它的源代码并加以改进
然后再读一遍
请注意,/bin/sh
记录在POSIX标准中
我最喜欢的Linux shell是。您可以尝试(用C++、开源代码编码),并设置登录shell(参见和…)< /P>
作为练习,你甚至可以自己写。你可以在里面用。另见和
通过阅读您最喜欢的shell的源代码,您肯定会学到很多东西。
某些Shell接受(请参见和…)。你可以给他们写一本
我想创建一个shell脚本文件来运行代码
为此,我建议同时使用和。但是要保持shell脚本的小规模。对于大型脚本(超过几百行),请使用比GNUBash更好的脚本
在某些情况下,会生成一个shell脚本。这种生成器的一个例子是。文件中的前两个字节组成一个16位整数,称为,操作系统可以从中导出如何处理该文件。对于某些幻数,随后的字节用于进一步区分为更多细节。幻数(以十六进制书写)2321定义这是一个文本文件,可由某些语言处理器(bash、perl、m4等)执行,随后的字节表示实际使用的语言处理器。如果在ASCII表中查找2321,则它是#代码>
你的另外两个例子并不表示一个有效的幻数
你不需要提供#!行,因为在执行脚本时,您总是可以显式地编写如何处理它
例如,如果您有一个文件foo
,该文件应该由bash运行,那么您可以使用(即)启动它(取决于bash在您的系统上的位置)
或者,如果希望通过路径找到bash,则
#!/usr/local/bin/env bash
并在脚本上设置可执行位
chmod u+x foo
然后通过简单地键入来调用脚本
./foo
或者不做任何准备工作,而是通过
bash ./foo
UPDATE:正如triplee所指出的,涉及env
的解决方案最好写为
#!/usr/bin/env bash
即使您的平台上碰巧存在/usr/local/bin,因为它可以更轻松地将脚本移植到不同的主机上(/usr/bin/env
应该存在于任何Linux或BSD设置中,包括MacOS)。文件中的前两个字节组成一个16位整数,称为,操作系统可以从中派生如何处理此文件。对于某些幻数,随后的字节用于进一步区分为更多细节。幻数(以十六进制书写)2321定义这是一个文本文件,可由某些语言处理器(bash、perl、m4等)执行,随后的字节表示实际使用的语言处理器。如果在ASCII表中查找2321,则它是#代码>
你的另外两个例子
#!/usr/bin/env bash