使 bash 脚本在 Linux 和 FreeBSD 之间可移植的正确方法是什么?

2023-11-23

我正在编写一些 bash 脚本,我希望这些脚本可以在我的 Linux 和 FreeBSD 系统上运行。

因为我主要在 Linux 上工作,所以我习惯用以下命令启动 bash 脚本

#!/bin/bash

但这在 FreeBSD 上不起作用,因为 bash 位于/usr/local/bin/bash。所以在 FreeBSD 上我的脚本需要从

#!/usr/local/bin/bash

那么我还可以使用其他可以在两个系统之间移植的东西吗?我不想维护脚本的两个版本。


#!/usr/bin/env bash

应该可以解决这个问题,前提是 bash 位于某个路径上。看here更多细节。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使 bash 脚本在 Linux 和 FreeBSD 之间可移植的正确方法是什么? 的相关文章

  • bash 中 :-(冒号破折号)的用法

    bash中这种风格的含义是什么 PUBLIC INTERFACE eth0 目的是什么 If PUBLIC INTERFACE存在且不为null 则返回其值 否则返回 eth0 实际上有一些记录在bash 手册页 http linux di
  • git 别名中的 AWK 语句

    我正在尝试创建一个 git 别名来以特定格式打印日志中的所有拉取请求 但是 我在使用 AWK 删除双空格时遇到问题 这是使用以下命令的 git log 的输出 git log merges grep pull request pretty
  • grep 两个分隔符之间的子字符串

    我有很多bash使用的脚本perl内的表达式grep为了提取两个分隔符之间的子字符串 例子 echo BeginMiddleEnd grep oP lt Begin End 问题是 当我将这些脚本移植到运行的平台时busybox 融合的 g
  • Pure Bash 替换捕获组

    我有这个示例字符串 test string 13A6 该字符 数字可以是从 0 到 9 以及从 A 到 F 我想要这个输出 1 3 A 6 我有这个工作 result echo test string sed s g 我想在没有 sed 的
  • 大多数 Linux 系统头文件与 C++ 兼容吗?

    大多数 Linux 系统头文件 API C 兼容吗 今天我试图做这样的事情 include
  • bash 行长度限制从何而来?

    在运行 Bash 4 4 19 标准安装 的 Solaris 11 上 输入行似乎有 256 个字符的限制 我想了解这个限制从何而来 我浏览了手册页 但没有找到任何解决此问题的内容 仅当未使用 readline 库时才会发生这种情况 在下面
  • 匹配模式后添加行[重复]

    这个问题在这里已经有答案了 我有一个文件说test具有以下值 Linux Solaris Fedora Ubuntu AIX HPUX 如何在匹配 AIX 的行后面添加一行系统主机名 如果我做 echo hostname gt gt tes
  • Linux 中的动态环境变量?

    Linux 中是否可以通过某种方式拥有动态环境变量 我有一个网络服务器 网站遵循以下布局 site qa production 我想要一个环境变量 例如 APPLICATION ENV 当我在 qa 目录中时设置为 qa 当我在生产目录中时
  • 所有平台上的java

    如果您想用 java 为 Windows Mac 和 Linux 编写桌面应用程序 那么所有这些代码都相同吗 您只需更改 GUI 即可使 Windows 应用程序更像 Windows 等等 如果不深入细节 它是如何工作的 Java 的卖点之
  • 如何有效截断文件头?

    大家都知道truncate file size 函数 通过截断文件尾部将文件大小更改为给定大小 但是如何做同样的事情 只截断文件的尾部和头部呢 通常 您必须重写整个文件 最简单的方法是跳过前几个字节 将其他所有内容复制到临时文件中 并在完成
  • 有没有办法让我简化这些回声? [复制]

    这个问题在这里已经有答案了 我仍在学习如何编写 shell 脚本 并且我面临着一个挑战 让我更容易回显 Name1 Name2 Name15 我不太确定从哪里开始 我已经想法 但如果我搞砸了 我不想看起来很傻 有什么帮助吗 我实际上还没有尝
  • 使用 find 命令搜索直到第一个匹配项

    我只需要搜索可以在任何地方的特定目录有没有办法运行此命令直到第一个匹配 谢谢 我现在使用 find noleaf name experiment type d wc l 正如鲁道夫 米尔鲍尔 Rudolf M hlbauer 所提到的 qu
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • PHP 从命令行启动 gui 程序,但 apache 不启动

    首先 我阅读了有类似问题的人的一些帖子 但所有答案都没有超出导出 DISPLAY 0 0 和 xauth cookies 这是我的问题 提前感谢您的宝贵时间 我开发了一个小库 它使用 OpenGL 和 GLSL 渲染货架 过去几天我将它包装
  • 动态参数值取决于另一个动态参数值

    启动前提 非常严格的环境 Windows 7 SP1 Powershell 3 0 使用外部库的可能性有限或不可能 我正在尝试重写之前创建的 bash 工具 这次使用 PowerShell 在 bash 中 我实现了自动完成功能 以使该工具
  • Linux:如何从特定端口发送TCP数据包?

    如何打开原始套接字以从特定 TCP 端口发送 我希望所有连接始终来自临时端口以下的一系列端口 如果您正在使用raw套接字 然后只需在数据包标头中填写正确的 TCP 源端口即可 相反 如果您使用 TCP 套接字接口 socket connec
  • 安装J语言的JQt IDE,出现错误

    我一直按照这里的说明进行操作 http code jsoftware com wiki System Installation Linux http code jsoftware com wiki System Installation L
  • 如何从 bash 数组中删除元素而不展平数组

    我想创建一个采用 bash 数组的函数 如下所示 a element zero element one element two 并删除一个元素 如 元素一 并留下一个数组 如下所示 a element zero element two 这样
  • 使用 sh 运行 bash 脚本

    我有 bash 脚本 它需要 bash 另一个人尝试运行它 sh script name sh 它失败了 因为 sh 是他的发行版中 dash 的符号链接 ls la bin sh lrwxrwxrwx 1 root root 4 Aug
  • ubuntu:升级软件(cmake)-版本消歧(本地编译)[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我的机器上安装了 cmake 2 8 0 来自 ubuntu 软件包 二进制文件放置在 usr bin cmake 中 我需要将 cmake 版本至少

随机推荐

  • 使用 Hibernate (JPA) 查询 Postgresql 找不到表

    我正在使用 JPA 与 Hibernate 和 Postgresql 开发一个应用程序 使用 Netbeans 向导 我从现有数据库创建了实体类 其中一个类的摘录如下 Entity Table name ADM TYPES XmlRootE
  • 更改数据库中所有存储过程的 ANSI_NULLS 设置

    我们在 ANSI NULLS 设置和计算列方面存在一些问题 并且我们有大量的存储过程 SET ANSI NULLS OFF 我们想把它们全部改成 SET ANSI NULLS ON 有没有一种简单的方法可以做到这一点 或者我必须将所有 SP
  • 如何使用 dart_pdf 将资产图像和图标转换为 flutter 中的 PdfImage

    使用的库 dart pdf搜索后我发现同样的问题GITHUB但无法解决问题 我尝试了这个 但出现了模糊的图像 请帮忙 ByteData data await rootBundle load assets test jpg var codec
  • 改变iphone sdk中图像的颜色

    我有一个图像 我想通过编程更改该图像的颜色 我想改变这张图片的颜色 UPDATE 使用这个方法 UIImage imageNamed NSString name withColor UIColor color load the image
  • Rails flash[:notice] 总是 nil

    我不明白为什么我的 Rails 视图无法识别 flash notice 或 flash error 关于渲染的部分视图 我不断收到以下错误 具体错误是 ActionView Template Error 当你没有预料到时 你得到了一个 ni
  • 在每个文档中构建具有附加字段的反应式出版物

    我想制作一个包含几个附加字段的出版物 但我不想使用Collection aggregate当集合发生变化时 我的出版物更新就会丢失 所以我不能只使用self added在其中 我打算使用Cursor observeChanges为了实现这一
  • GMP pow 中的溢出处理

    我只是 GMP 库的间接用户 主要通过swi prolog and yap 但我对解决这个问题非常感兴趣 当使用大得离谱的值执行求幂时 主机系统或 GMP 不再能够适当地处理溢出 我已经与上述系统的开发人员交谈过 但他们没有看到解决此问题的
  • 在进程和 DLL 之间共享全局/静态变量

    我只想在进程和进程调用的 dll 之间共享静态 全局变量 exe和dll位于同一内存地址空间 我不希望该变量在其他进程之间共享 问题的阐述 假设有一个静态 全局变量x in a cpp 两个都是exefoo exe和动态链接库bar dll
  • 以编程方式更改 android:digits

    我在布局 xml 中有这个 android digits 0123456789 android inputType phone gt 我想要的是能够以编程方式更改它并且能够来回更改它 输入 Type 部分很好 manual ip setIn
  • 如果特定情况没有返回结果,则使用 count(*) 显示零

    我有一个这样的查询 它返回 city 中每个案例的行数 select case edition id when 6 then DELHI when 50 then AHMEDABAD when 4 then HYDERABAD when 2
  • Android L“令人愉快的”可绘制转换

    Google 是否允许使用图标诸如此类的过渡由开发商创建 或者是开发人员有责任创建这种 令人愉快的 过渡 我真的很想在我的应用程序中实现这些 具体是这样的图标 您可以使用 AnimatedDrawable 和基于位图的框架创建动画图标 在L
  • 缓存 JavaScript 承诺结果

    我会向服务器发出一次调用以获取项目列表 如何确保仅进行一次调用并且仅处理集合一次以创建键值映射 var itemMap function getItems getAllItemsFromServer then function data d
  • 真正的自定义按钮形状

    给定任何形状 实心圆形 星形 三角形 带有透明区域的位图等 我想知道是否可以 使用最新的 Android API 知道用户是否单击了视图或视图之外 例如 如果我有一个圆形按钮 我想知道用户是否在圆圈内单击 而不是在圆圈外单击 是否可以 如果
  • 在android中捏缩放以获得图像视图?

    我有一个要求 我必须在捏合时放大和缩小图像 如果有人可以建议我使用 Imageview 的捏合缩放功能 请 只需执行以下操作即可获得捏缩放 将您的图像放在资产文件夹中并提供此代码 String imageUrl file android a
  • 如何在 Java 中读写时强制使用 UTF-16?

    我发现您可以通过以下方式指定 UTF 16 作为字符集Charset forName UTF 16 并且您可以通过以下方式创建新的 UTF 16 解码器Charset forName UTF 16 newDecoder 但我只看到指定一个的
  • DrawerNavigator:更改文本颜色

    On react navigation s DrawerNavigator 有没有办法改变项目的文本颜色和背景颜色 By default the color scheme looks like the following 由以下内容初始化
  • 如何使用 ORMLite 正确注释继承类?

    我正在尝试将继承与 ORMLite 一起使用 但通过查看文档和谷歌搜索 我无法确定它是否受支持 我想做的是拥有 public abstract class Person public int id public String name pu
  • 如何使用命令提示符导出 mysql 数据库?

    我有一个非常大的数据库 所以我想使用命令提示符导出它 但我不知道如何导出 我正在使用WAMP 首先检查你的命令行是否识别mysql命令 如果没有转到命令并输入 set path c wamp bin mysql mysql5 1 36 bi
  • Win32 应用程序中“WindowProc”的正确返回值

    在 MSDN 的 Win32 Api 文档中 位于http msdn microsoft com en us library ms633573 28VS 85 29 aspx 在WindowProc 它指出 返回值是消息处理的结果 取决于发
  • 使 bash 脚本在 Linux 和 FreeBSD 之间可移植的正确方法是什么?

    我正在编写一些 bash 脚本 我希望这些脚本可以在我的 Linux 和 FreeBSD 系统上运行 因为我主要在 Linux 上工作 所以我习惯用以下命令启动 bash 脚本 bin bash 但这在 FreeBSD 上不起作用 因为 b