终端中选项/问题的约定是什么?

T. *_*ent 8 command-line bash zsh macos

在探索 zsh 终端中与 mv 相关的一些标志时,我遇到了以下提示:overwrite untitled folder 2/test.txt? (y/n [n])

我的问题是括号中的第二个 n 寻求询问或建议是什么?为什么提示不只是y/n,为什么呢y/n [n]

这是什么意思?有人可以解释一下 的意义[n]吗?

Jam*_*ner 20

如果你只是按回车键,它就会采用括号中的部分。在您的情况下,默认值为 \xe2\x80\x9cn\xe2\x80\x9d。

\n


Sté*_*las 15

zsh不是终端,它只是一个 shell,一种具有交互模式的编程语言,专门用于运行其他命令。

\n

终端仿真器,例如xtermgnome-terminal为运行您的登录 shell\xc2\xb9 作为显示在那里的初始应用程序。

\n

在 shell 提示符下,您通常运行其他命令,例如lsvi等,这些命令也会输出到终端。

\n

并不是因为终端窗口的标题是xtermor zsh,所以您在其中看到的内容是由xtermor输出的zsh本身输出的。它由任何将其写入与终端窗口关联的伪终端设备的应用程序显示。

\n

具体来说,overwrite untitled folder 2/test.txt? (y/n [n])这不是 zsh shell 输出的消息,zsh 不会覆盖“文件夹”。zsh 是一个 Unix shell,“文件夹”甚至不是 Unix 术语。在 Unix 中你有“目录”,而不是“文件夹”\xc2\xb2。

\n

话虽如此,使用y/n [n]是在终端上提示用户时非常常见的习惯用法。一般形式为:

\n
Question? acceptable-answers [default]\n
Run Code Online (Sandbox Code Playgroud)\n

或者诸如 openSUSE 之类的变体zypper

\n
Continue? [y/n/v/...? shows all options] (y):\n
Run Code Online (Sandbox Code Playgroud)\n

它会提出一个问题,可选择列出可接受的答案,并说明当您什么都不回答时的默认答案是什么。

\n

因此,这里是一个是/否答案,默认答案是“否”。

\n

例如,当询问一堆问题来配置某些软件时,该表单非常有用,以便用户可以一直按 Enter 键,除非他们想要修改默认设置。

\n

除了完整的 TUI 之外,其他常见形式还将设置列出为:

\n
1. setting1: current-value\n2. setting2: value2\n3. ...\n\nWhat setting would you like to change?\n
Run Code Online (Sandbox Code Playgroud)\n

并让用户选择他们想要更改的内容(所选设置的下一个提示仍然可以使用question? x/y/z [x] )。

\n
\n

\xc2\xb9 以及环境中引用的 shell,$SHELL它恰好是在登录时从登录 shell 初始化的

\n

\xc2\xb2 不过,我们最近确实看到 Microsoft 术语泄漏到 Unix,特别是在桌面环境中。

\n