Linux“sh”是否可以运行以BOM(字节顺序标记)开头的Unicode文本脚本文件?
我确实需要这个并且不想删除 BOM。
答案1
#!/bin/...
有点。虽然如果可执行脚本带有标头且同时带有 UTF-8 BOM,内核将无法识别它们,但它们仍应被父 shell 本身识别(传统的 POSIX 方式),并且仍可通过手动调用 shell 解释器来运行它们:
sh myscript.sh
shell 会将 BOM 视为第一行的一部分,因此不必费心包含标题#!
,而是确保脚本以虚拟命令开头来使用它:
: 2>/dev/null
不支持 UTF-16,无论是否带 BOM。