据我了解,要使内核execve
成为非 ELF 文件,该文件必须是一个以 she-bang 开头的脚本#!
,但我有一个脚本在没有它的情况下成功运行,为什么会发生这种情况?
xtricman⚓ArchVirtual⏺️~?ls a.sh -l
-r-xr-xr-x 1 xtricman users 23 9月 26 18:45 a.sh
xtricman⚓ArchVirtual⏺️~?cat a.sh
echo "FDHDSFHGFKJJHGO"
xtricman⚓ArchVirtual⏺️~?./a.sh
FDHDSFHGFKJJHGO
这个a.sh
脚本不包含 she-bang,那么它是如何运行的呢?
如果文件不是以“shebang”行开头,大多数 shell 将尝试自己执行文件中的行。