我试图在没有“wait cursor”的情况下启动应用程序,根据exec的i3 userguide我应该使用--no-statrup-id选项,但它给了我“不可能”的错误。

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

有谁能告诉我怎么了吗?在每一本手册中,我都发现人们使用这个标志,但是man exec没有关于这个特性的信息。

最佳答案

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

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

Bash manual中找到关于内置的exec
除非另有说明,否则每个内置命令都被记录为接受选项,前面加上“-”accepts“-”表示选项结束。
编辑:
我可以启动firefox,我的输出返回0和一个true
i3-msg: unrecognized option '--no-startup-id'
[{"success":true}]

我看了一下,发现一些有趣的东西
解析器规范/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)

但是我没有足够的语法技巧可以更进一步。

10-08 01:12