我想和别人分享一个脚本,但不确定哪个在MacOS上是首选的。哪一个是最好的支持?
?
#!/bin/sh
echo "Here goes my simple script that changes some settings."
# ... do some stuff还是这个?
#!/bin/bash
echo "Here goes my simple script that changes some settings."
# ... do some stuff发布于 2019-10-21 22:09:04
您应该选择与脚本所用的shell方言/语言相对应的shebang。
如果您为POSIX编写#!/bin/sh
#!/usr/bin/env zsh
#!/usr/bin/env fish
#!/usr/bin/env bash编写的#!/usr/bin/env fish
sh对bash的作用与C对C++的作用大致相同,您应该知道您想要使用哪一种。有关更多信息,请参见Difference between sh and bash和Why does my bash code fail when I run it with sh?
*使用env的方式等同于#!/bin/bash,但也允许用户安装较新版本的Bash。尤其是macOS上的人这么做是因为操作系统附带了过时的版本。
发布于 2019-10-21 18:59:59
这并不重要:这取决于使用脚本的人来确保shebang在他们的机器上选择正确的解释器,所以您提供的任何内容都可能在接收端发生更改。
您所能做的就是记录执行脚本的要求。(例如,“需要bash 4.2或更高版本”)。您可以完全忽略where,因为您依赖于用户知道所需的解释器在哪里。
https://stackoverflow.com/questions/58492412
复制相似问题