Gnome 终端:-e 和 -- 之间的区别?
Gnome-terminal: Difference between -e and --?
我正在尝试打开一个显示正在写入文件的终端。进度百分比已写入文件,我希望用户能看到它。
我找到的大多数打开新终端的解决方案都说使用 -e
,但是 returns
# Option "-e" is deprecated and might be removed in a later version of gnome-terminal
# Use "-- " to terminate the options and put the command line to execute after it.
我看到过关于这个错误的讨论,但我仍然不确定 -e
和 --
之间的功能区别到底是什么。如果我只是交换它们,我 运行 使用 -e
的脚本将停止正常工作,所以显然我缺少一些东西。
-e
将接受一个必须被解析为 shell 命令的参数,但它可以在其他 gnome-terminal
参数之前。例如,
gnome-terminal -e 'command "argument with spaces"' --some-other-gnome-terminal-option
--
本身不是一个选项;这是一个特殊的参数,表示选项的 end。 --
之后的任何内容都会被 gnome-terminal
自己的选项解析器忽略,并被视为普通参数。像
gnome-terminal -- 'command "argument with spaces"' --some-other-gnome-terminal-option
将在 --
之后向 gnome-terminal
提供 2 个附加参数:
command "argument with spaces"
--some-other-gnome-terminal-option
此外,您会收到错误消息,因为 gnome-terminal
会尝试 运行 名为 command "argument with spaces"
的命令,而不是名为 command
.[=32 的命令=]
实际上,这意味着您不能简单地将 -e
替换为 --
然后收工。相反,您首先将 -e
移动到选项列表的 end:
gnome-terminal --some-other-gnome-terminal-option -e 'command "argument with spaces"'
然后将 -e '...'
替换为 -- ...
。该命令及其每个参数现在是 gnome-terminal
的不同参数,这消除了对整个引用层的需要。
gnome-terminal --some-other-gnome-terminal-option -- command "argument with spaces"
我正在尝试打开一个显示正在写入文件的终端。进度百分比已写入文件,我希望用户能看到它。
我找到的大多数打开新终端的解决方案都说使用 -e
,但是 returns
# Option "-e" is deprecated and might be removed in a later version of gnome-terminal
# Use "-- " to terminate the options and put the command line to execute after it.
我看到过关于这个错误的讨论,但我仍然不确定 -e
和 --
之间的功能区别到底是什么。如果我只是交换它们,我 运行 使用 -e
的脚本将停止正常工作,所以显然我缺少一些东西。
-e
将接受一个必须被解析为 shell 命令的参数,但它可以在其他 gnome-terminal
参数之前。例如,
gnome-terminal -e 'command "argument with spaces"' --some-other-gnome-terminal-option
--
本身不是一个选项;这是一个特殊的参数,表示选项的 end。 --
之后的任何内容都会被 gnome-terminal
自己的选项解析器忽略,并被视为普通参数。像
gnome-terminal -- 'command "argument with spaces"' --some-other-gnome-terminal-option
将在 --
之后向 gnome-terminal
提供 2 个附加参数:
command "argument with spaces"
--some-other-gnome-terminal-option
此外,您会收到错误消息,因为 gnome-terminal
会尝试 运行 名为 command "argument with spaces"
的命令,而不是名为 command
.[=32 的命令=]
实际上,这意味着您不能简单地将 -e
替换为 --
然后收工。相反,您首先将 -e
移动到选项列表的 end:
gnome-terminal --some-other-gnome-terminal-option -e 'command "argument with spaces"'
然后将 -e '...'
替换为 -- ...
。该命令及其每个参数现在是 gnome-terminal
的不同参数,这消除了对整个引用层的需要。
gnome-terminal --some-other-gnome-terminal-option -- command "argument with spaces"