bash shebang解释器(/bin/bash^m: 坏的解释器: 没有那个文件或目录)

linux bash shebang解释器 如果您通过阅读别人的代码来学习Bash脚本,您可能已经注意到脚本的第一行以#!字符和Bash解释器的路径开头。此字符#!称为shebang,用于告诉操作系统使用哪个解释器来解析文件的其余部分。 By myfreax 22 Oct 2019

假如你在学习中别人编号去学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就是bashzshsh。便于确保你的脚本将一直被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脚本中运用生活中了特别好把握。

如果您有任何问题或意见和建议,请随时。

LINUX

Bash shell检查字符串是否包含子字符串(python查询字符串是否包含某字符串)

2023-1-19 12:10:07

LINUX

Linux locate查找文件(linux locate指令)

2023-1-19 12:14:30

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索