“尾随空格导致输入行在下一个输入行逻辑上继续”是什么意思?

Tim*_*Tim 5 xargs

从手册xargs

-L max-lines 
Run Code Online (Sandbox Code Playgroud)

每个命令行最多使用 max-lines 非空白输入行。尾随空白导致输入行在下一个输入行上逻辑上继续。意味着 -x。

“尾随空格导致输入行在下一个输入行逻辑上继续”是什么意思?你能用一些例子来说明吗?谢谢。

源自https://unix.stackexchange.com/a/448294/674

iga*_*gal 10

手册所说的是,输入行末尾的尾随空格将导致xargs将其视为下一行的一部分 - 有效地转义换行符。考虑以下命令执行:

user@host~:$ (echo "line1"; echo "line2") | xargs -L 1 echo
line1
line2
Run Code Online (Sandbox Code Playgroud)

因为这个-L 1选项,每行输入被单独处理,所以我们得到两行输出。现在将其与以下示例进行比较,其中输入的第一行包含一个尾随空格:

user@host~:$ (echo "line1 "; echo "line2") | xargs -L 1 echo
line1 line2
Run Code Online (Sandbox Code Playgroud)

请注意,这两行被 视为一行输入xargs


这也是值得(每评论)的注意-L max-lines选项是一个XSI扩展(参见xargs公开组网站上的手册页)。这也称为 X/Open 系统接口扩展 -单一 UNIX 规范 (SUS)的补充规范。

有关 POSIX、SUS 和 XSI 之间差异的更多信息,请参阅以下帖子:

或查阅Open Group Base SpecificationsBase Definitions Volume关于一致性部分