Exec --no-startup-id <command />表示&#34; - &#34;无效选项

时间:2016-10-07 09:11:22

标签: linux bash exec

我尝试启动应用程序而没有&#34;等待光标&#34;,根据i3 userguide我应该使用exec的--no-statrup-id选项,但它给了我&#34;不可能& #34;错误。

$ exec --no-startup-id firefox
bash: exec: --: invalid option
exec: usage: exec [-cl] [-a name] [command [arguments ...]] [redirection ...]

有人可以向我解释错误吗?在每本手册中,我发现人们使用此标记,但man exec没有关于此功能的信息。

2 个答案:

答案 0 :(得分:1)

i3 userguide 中编写的语法适用于您的 i3配置文件,如果您想在shell中运行它,请使用i3-msg命令

i3-msg exec --no-startup-id firefox

Bash manual中查找内置exec

  

除非另有说明,否则每个内置命令都记录为接受选项前面的' - ',接受' - '表示选项的结束。

编辑:
我可以启动firefox,输出返回0和 true

i3-msg: unrecognized option '--no-startup-id'
[{"success":true}]

我看一下i3 source,我找到了一些有趣的东西 parser-specs / config.spec

# <exec|exec_always> [--no-startup-id] command
state EXEC:
  no_startup_id = '--no-startup-id'
    ->
  command = string
    -> call cfg_exec($exectype, $no_startup_id, $command)

parser-specs / commands.spec

# exec [--no-startup-id] <command>
state EXEC:
  nosn = '--no-startup-id'
    ->
  command = string
    -> call cmd_exec($nosn, $command)

但是我没有足够的语法技能来进一步发展。

答案 1 :(得分:1)

只需使用引号使i3-msg不解析参数。

 user  ~ | MyDE  i3-msg exec --no-startup-id /home/mbp/MyDE/xrandr/dock.sh
i3-msg: unrecognized option '--no-startup-id'
 user  ~ | MyDE  i3-msg "exec --no-startup-id /home/mbp/MyDE/xrandr/dock.sh"
[{"success":true}]