将长命令粘贴到终端

将长命令粘贴到终端

我无法将长命令粘贴到终端中。

有一个 ls 命令需要很多参数,我正尝试通过复制将其插入终端。

但它运行每一行。

所以我得到了错误。

我能做些什么 ?

答案1

声音就像是多个命令,或者由于某种原因,一个命令被拆分成多行。如果您能向我们展示,那么在这种情况下,这将让我们知道是哪一个。

这并不是说命令真的太长的情况不存在,只是在实践中这种情况很少见,尤其是在复制和粘贴时!如果你遇到了这个问题,请查看xargsEduard 的回答。

如果它是一个添加了换行符的命令,请删除换行符。

互联网上的格式并不总是完美的。一些网站(和作者)使用糟糕的代码标签,这可能意味着某些内容被分成多行,从而破坏它们。一个简单的例子是在两个被截断的目录上运行 ls:

ls a_really_long_directory_name
another_really_long_directory_name

这里的简单答案就是删除换行符:

ls a_really_long_directory_name another_really_long_directory_name

但您也可以使用反斜杠作为行上的最后一个字符来转义换行符:

ls a_really_long_directory_name \
another_really_long_directory_name

如果您想要一起运行多个命令(而不是粘贴),请将它们放入脚本中并在准备好时运行该脚本。

如果“命令”实际上看起来像:

ls a_really_long_directory_name
ls another_really_long_directory_name

这是两个命令。当您粘贴它们时,每个换行符都会强制运行该行。这就是 Ubuntu 中大多数 shell 的工作方式。如果您想将它们捆绑在一起,可以将它们粘贴到一个文件中(我们称之为myscript),然后告诉 bash 运行这些命令:

bash myscript

你不必处理 crunchbangs 和执行权限,你只需告诉 bash 打开并运行哪个文件。你如果你愿意的话可以做这些事情但是在这里它们不是必需的。

答案2

长度限制相当长,您可以使用以下方法检查:

xargs --show-limits

(看gnome-terminal 中命令行参数的最大长度是多少?

因此注释之间可能有新行。您可以先将其粘贴到 gedit 中,确保只有一行,然后使用 Ctrl+Shift+V 将其粘贴到终端中,以进行检查

相关内容