Linux 是什么让_LINTIAN_感到高兴,以及shell脚本中的一句话?

Linux 是什么让_LINTIAN_感到高兴,以及shell脚本中的一句话?,linux,shell,sh,Linux,Shell,Sh,在我遇到的sh脚本中,我找到了这些行 #\ 让林寻开心’ 接近开始 从标识符的名称可以清楚地看出添加该标识符的原因。但是我的问题是:为什么这是合法的sh代码,它做了什么(如果有的话)? 我问这个问题的原因是,它在这个脚本中变得毫无用处,因为它会将勾号后的所有文件解释为字符串。如果我知道为什么它是合法的,可能会建议对语言定义文件进行编辑来解决这个问题 我试着在man页面上搜索sh以查找带有 $man sh|grep“\W”\W” 但是没有一场比赛对我有帮助(虽然有很多比赛,所以如果有的话我可

在我遇到的
sh
脚本中,我找到了这些行

#\
让林寻开心’
接近开始

从标识符的名称可以清楚地看出添加该标识符的原因。但是我的问题是:为什么这是合法的sh代码,它做了什么(如果有的话)?


我问这个问题的原因是,它在这个脚本中变得毫无用处,因为它会将勾号后的所有文件解释为字符串。如果我知道为什么它是合法的,可能会建议对语言定义文件进行编辑来解决这个问题

我试着在
man
页面上搜索
sh
以查找带有

$man sh|grep“\W”\W”
但是没有一场比赛对我有帮助(虽然有很多比赛,所以如果有的话我可能会错过)

我也不懂
\
;我不知道这是否与这个问题无关。(
Vim
将语法着色
\
后面的行作为注释,但是一个简单的测试表明
sh
确实执行
\
后面的行)

以下是脚本开头的扩展摘录:

#/垃圾箱/垃圾箱
# [...]
#\
exec tclsh$0--“$@”
#\
让林寻开心’
设置程序版本“v1.27 17/06/2005”

您正在查看的脚本实际上不是shell(sh、bash、dash等)脚本,而是tclsh脚本。当您启动它时,实际上,/bin/sh首先启动。它执行的第一个命令是

exec tclsh $0 -- "$@"
这意味着它启动tclsh并将脚本文件传递给tclsh。现在tclsh开始解释脚本。它还以“#”作为行注释的开头,但与sh不同的是,行注释可以扩展到下一行,前提是行的结尾被转义,因此
\

因此,
MAKE_LINTIAN_HAPPY
行不是tclsh的命令,它只是被忽略了。tclsh执行的第一个命令是
set PROG\u VERSION…


我不认识林寻。这一行可能正是为了让林寻将文件内容“误解”为文本,因为它会认为这是一个sh脚本,并且会大声嚷嚷违反政策。

你看到的脚本实际上不是一个shell(sh、bash、dash等)脚本,但它是一个tclsh脚本。当您启动它时,实际上,/bin/sh是第一次启动的。它执行的第一个命令是

exec tclsh $0 -- "$@"
这意味着它启动tclsh并将脚本文件传递给tclsh。现在tclsh开始解释脚本。它还将“#”作为行注释的开头,但与sh不同的是,行注释可以扩展到下一行,如果行尾被转义,因此
\

因此,
MAKE_LINTIAN\u HAPPY
行不是tclsh的命令,它只是被忽略。tclsh执行的第一个命令是
set PROG\u VERSION…


我不知道林寻。这一行可能正是为了让林寻将文件的内容“误解”为文本,因为它会认为这是一个sh脚本,并且会大声嚷嚷违反政策。

“林寻是一个辅助工具,与Debian软件包管理系统dpkg一起使用。”请参阅。祝你好运。之前有没有
?如果你去掉
让林寻开心
这句话,林寻会发出什么样的警告?@karoly horvath:我不知道是什么警告,我从来没有用过林寻。不,问题中的“在线”是文件中第一次出现的。好吧,如果你感兴趣,你应该检查一下。而且。。。有结束语吗?“Lintian是一个辅助工具,与Debian软件包管理系统dpkg一起使用。”请参阅。祝你好运。之前有没有
?如果你去掉
让林寻开心
这句话,林寻会发出什么样的警告?@karoly horvath:我不知道是什么警告,我从来没有用过林寻。不,问题中的“在线”是文件中第一次出现的。好吧,如果你感兴趣,你应该检查一下。而且。。。是否有结束语?+1良好的分析。最后一段似乎完全有道理。最后一段似乎完全有道理。