如何使用 W3M 为 Web 搜索创建 CLI 别名?

Tes*_*eso 3 command-line bash alias w3m

我想创建一个具有通过命令行界面 (CLI) 使用 W3M 执行 DuckDuckGo 搜索功能的别名。

我已经创建了别名并调用了 DuckDuckGo 搜索引擎。但是,我还想在 CLI 中的别名之后输入搜索关键字,但我不知道该怎么做。例子:

alias duckit="w3m https://lite.duckduckgo.com/lite/"
Run Code Online (Sandbox Code Playgroud)

当我duckit在 CLI 中输入命令时,这个别名会调用 DuckDuckGo 搜索引擎并打开网页。但我希望别名也能在 DuckDuckGo 中输入搜索关键字并显示结果。

所以我尝试?q=在上面别名的末尾添加:

alias duckit="w3m https://lite.duckduckgo.com/lite/?q="
Run Code Online (Sandbox Code Playgroud)

但是,按如下方式运行它不起作用:

duckit test
Run Code Online (Sandbox Code Playgroud)

我需要做什么?

ter*_*don 5

如果需要向别名传递参数,则不能使用别名,而是需要使用函数。将此添加到您的~/.bashrc文件中:

duckit(){
    w3m https://lite.duckduckgo.com/lite/?q="$@"
}
Run Code Online (Sandbox Code Playgroud)

现在打开一个新终端并尝试duckit test

  • @Teso 是的。或者,您可以使用它:`duckit(){ w3m https://lite.duckduckgo.com/lite/?q="$*"; }`。但无论如何,传递引用的论点几乎总是更好。 (2认同)