Bash

你是說這個命令嗎?(如何回复)

  • January 17, 2019

假設我在終端中輸入了以下內容:

wgets "link"

我會得到回應:

未找到命令“wgets”,您的意思是:來自包“wget”(主)的命令“wget”

我犯了一個錯誤,終端警告我。

在終端警告我之後,我可以輸入一個命令,以便它會按照它認為的那樣執行上面的命令?

例如:

->wgets "link"

->No command 'wgets' found, did you mean:
Command 'wget' from package 'wget' (main)

->yes (this command I am looking for ... is there one?)

-> executing wget "link"

切換到zsh(預設安裝在 macOS 上,並在所有主要的 Linux 發行版、*BSD 和其他類 Unix 作業系統的軟體集合中作為一個包提供)。它具有命令名稱的自動更正功能。

% wgets
zsh: correct 'wgets' to 'wget' [nyae]? y
wget: missing URL
…

Bash你可以使用search and replace修改以前執行的不正確的命令。從你的例子:

->wgets "link"

->No command 'wgets' found, did you mean:
Command 'wget' from package 'wget' (main)

->^wgets^wget^

wgets替換為wget並執行命令。

為了便於對歷史列表中前面的命令執行此操作:

->!wgets:s/wgets/wget/

man 3 historyEvent Designators

!string
    Refer to the most recent command starting with string.

...

^string1^string2^
    Quick Substitution.  Repeat the last command, replacing string1
    with string2.  Equivalent to ''!!:s/string1/string2/''.

引用自:https://unix.stackexchange.com/questions/373064