在探索 zsh 终端中与 mv 相关的一些标志时,我遇到了以下提示:overwrite untitled folder 2/test.txt? (y/n [n])
我的问题是括号中的第二个 n 寻求询问或建议是什么?为什么提示不只是y/n
,为什么呢y/n [n]
?
这是什么意思?有人可以解释一下 的意义吗[n]
?
答案1
如果你只是按回车键,它就会采用括号中的部分。在您的情况下,默认值为“n”。
答案2
zsh
不是终端,它只是一个 shell,一种具有交互模式的编程语言,专门用于运行其他命令。
终端仿真器(例如xterm
)gnome-terminal
配置为运行您的登录 shell1 作为显示在那里的初始应用程序。
在 shell 提示符下,您通常会运行其他命令,例如ls
、vi
等,这些命令也会输出到终端。
这并不是因为终端窗口的标题是xterm
or zsh
,所以您在其中看到的内容是由xterm
orzsh
本身输出的。它由任何将其写入与终端窗口关联的伪终端设备的应用程序显示。
具体来说,overwrite untitled folder 2/test.txt? (y/n [n])
这不是 zsh shell 输出的消息,zsh 不会覆盖“文件夹”。 zsh 是一个 Unix shell,“文件夹”甚至不是 Unix 术语。在 Unix 中你有“目录”,而不是“文件夹”²。
话虽如此,使用y/n [n]
是在终端上提示用户时非常常见的习惯用法。一般形式为:
Question? acceptable-answers [default]
或者诸如 openSUSEzypper
之类的变体:
Continue? [y/n/v/...? shows all options] (y):
它会提出一个问题,可选择列出可接受的答案,并说明当您什么都不回答时的默认答案是什么。
因此,这里是一个是/否答案,默认答案是“否”。
例如,当询问一堆问题来配置某些软件时,该表单非常有用,以便用户可以一直按 Enter 键,除非他们想要修改默认设置。
除了完整的 TUI 之外,其他常见形式还将设置列出为:
1. setting1: current-value
2. setting2: value2
3. ...
What setting would you like to change?
并让用户选择他们想要更改的内容(所选设置的下一个提示仍然可以使用样式question? x/y/z [x]
)。
¹ 环境中引用的 shell 恰好$SHELL
是在登录时从登录 shell 初始化的
² 我们确实看到 Microsoft 术语最近泄漏到了 Unix,特别是在桌面环境中。