如果我错了,请纠正我:
#!/bin/sh/bin/sh是Bash/bin/sh不是bash,它是真正的sh因此,如果我想在FreeBSD中使用Linux脚本,并且在shell中运行./script.sh,它将以"sh“而不是Bash运行Bash脚本,因为FreeBSD中的/bin/sh不是Bash。
有没有办法不用修改就可以运行那些Bash脚本?所以没有修改脚本文件中的#!/bin/sh语句来指向其他地方?
我想运行Bash脚本槽Zsh,如果可能的话。不想安装Bash,因为Zsh可以运行Bash脚本.
发布于 2012-08-05 10:51:40
您可以使用脚本作为参数调用您最喜欢的shell。
bash ./script.sh发布于 2015-01-30 09:35:13
我自己经营FreeBSD。我发现以以下方式启动脚本极大地提高了跨操作系统的兼容性:
#!/usr/bin/env bash发布于 2017-08-17 08:55:04
当你错的时候你要求纠正你。我试试看:
bash编写的,另一些是为dash编写的,希望为任何符合POSIX的shell编写很多便携的脚本。bash特性,强烈建议使用#!/bin/bash shebang。dash或mksh。sh实现。哪一个是“真的”?在FreeBSD上,sh基于Almquist shell,比如dash或NetBSD sh。在OpenBSD上,它基于pdksh,在许多商业单元上,它基于ksh88 (这是Unix/POSIX sh规范的基础)。一些ksh88-based shells和bash是仅有的两个已被认证为符合Unix的sh实现的shell(当使用正确的标志构建时和在正确的环境中构建时)。如果您有带有/bin/sh shebang的脚本,并且希望它们由zsh执行,您可以尝试将脚本传递给zsh,但是一旦这个脚本调用另一个脚本(您不想修改它),它就会失败。
因此,我只看到从/bin/sh到您的zsh有一个符号链接的可能性。但我不建议这样做,因为它可能会对您的启动时间产生严重影响,甚至对您的一些linux脚本也没有任何帮助。
https://unix.stackexchange.com/questions/44785
复制相似问题