我注意到许多问题,答案和评论,表示不屑于(有时甚至担心)编写脚本而不是单行代码。所以,我想知道:
什么时候以及为什么我应该编写一个独立的脚本而不是一个“单一代码”?或相反亦然?
两者的用例和利弊是什么?
有些语言(例如awk或perl)是否比其他语言(例如python)更适合单行?如果是这样,为什么?
只是在个人喜好问题上,还是在特定情况下有充分的理由(即客观的理由)写一个或另一个?那是什么原因
定义
one-liner
:直接在shell命令行中键入或粘贴的任何命令序列。常累及管道和/或使用的语言,如sed
,awk
,perl
,和/或工具,如grep
或cut
或sort
。定义特征是在命令行上直接执行-长度和格式无关。“单行代码”可以全部在一行上,也可以有多行(例如sh for loop,或嵌入式awk或sed代码,并带有换行和缩进以提高可读性)。
script
:使用任何解释语言的任何命令序列,这些命令序列保存到文件中,然后执行。脚本可以完全用一种语言编写,也可以是使用其他语言围绕多个“单行代码”的shell脚本包装。
我有自己的答案(我将在稍后发布),但是我希望这成为有关该主题的规范问答,而不仅仅是我个人的看法。