假如你在学习中别人编号去学Bash脚本,您可能早就留意到脚本的第一行以#!
标志符和Bash解释器的路径逐渐。
此标志符#!
称作shebang,用于告之电脑系统运用哪一个解释器去分析文件信息其余部分。
Shebang解释器指令
Shebang解释器指令采用以下方法:
#!interpreter [arguments]
- 指令一定要脚本中的第一行。
- 指令必须以shebang逐渐
#!
- shebang标志符后缺口是可选择的。
- 翻译是一个二进制文件的一体化路径(例如:
/bin/sh
,/bin/bash
。 - 解释器基本参数是可选择的。
例子:
-
#!/bin/bash
-运用bash
剖析文本文档。 -
#!/usr/bin/env perl
-运用env
指令检索perl
可执行文件的路径。 -
#!/usr/bin/python
运用python
二进制文件可执行文件。
在Bash脚本中运用Shebang
倘若未找到shebang,并且运行Bash脚本的消费者使用另一个Shell,则Shell将使用这一默认解释器进行剖析。例如,对于默认设置描述bash
就是bash
和zsh
是sh
。便于确保你的脚本将一直被Bash描述,我们需要运用shebang特殊易操作路径。
分为两种运用Shebang指令和设置解释器的方法。
运用bash二进制文件的关键路径:
#!/bin/bash
运用env
软件工具:
#!/usr/bin/env bash
运用第二种方法的优点是这将会bash
在顾客的$PATH
环境变量中搜索可执行文件。如果到bash
的路径不止一个,脚本将使用第一个路径。
当使用第一个选项向Bash shell给与这个功能里加入选项时,将它传递给解释器。例如,要以开发者模式运行脚本,能用#!/bin/bash -x
。倘若使用的是env
方法,则需要使用set
来声明该选项。要打开开发者模式,您将在shebang行之后再加上set -x
。
案例脚本
让我们运用shebang创建一个简单的脚本,该脚本将打印出“ Hello,World”。打开你文本处理并粘贴以下行:
nano hello_world
你好,全世界
#!/bin/bash
echo "Hello, World"
为了能够运行脚本而无需从cmd特殊解释器,我们需要使文本文档易操作:
chmod x hello_world
现如今,倘若您可以通过键入./
脚后跟脚本名称来运行脚本:
./hello_world
Hello, World
遮盖Shebang
倘若因为各种原因你需要遮盖Shebang行里的解释器集,则需根据显式特殊所需的shell来运行脚本。
例如,运用bash
shell操作程序运行在Shebang行中特定脚本,此刻遮盖脚本第一行 #!/bin/sh
:
bash hello_world
一定要注意,遮盖shell解释器并非一个好主意,因为她可能导致脚本的发生意外行为。
结论
至今为止,您应该对Shebang是什么如何有效在Bash脚本中运用生活中了特别好把握。
如果您有任何问题或意见和建议,请随时。
