带有字节顺序标记的 sh 脚本

带有字节顺序标记的 sh 脚本

Linux“sh”是否可以运行以BOM(字节顺序标记)开头的Unicode文本脚本文件?

我确实需要这个并且不想删除 BOM。

答案1

#!/bin/...有点。虽然如果可执行脚本带有标头且同时带有 UTF-8 BOM,内核将无法识别它们,但它们仍应被父 shell 本身识别(传统的 POSIX 方式),并且仍可通过手动调用 shell 解释器来运行它们:

sh myscript.sh

shell 会将 BOM 视为第一行的一部分,因此不必费心包含标题#!,而是确保脚本以虚拟命令开头来使用它:

: 2>/dev/null

不支持 UTF-16,无论是否带 BOM。

相关内容