通过提示中的 bash_aliases 将多个搜索词传递到文本浏览器

通过提示中的 bash_aliases 将多个搜索词传递到文本浏览器

我想实现一个 bash 别名,这样我就可以输入:

$> lynxsearch most popular unix text browsers
$> w3msearch most popular unix text browsers

(或引号或括号内的搜索词)

已在搜索结果页面上进行初始加载。

我的 .bash_aliases 中有以下内容,但仅当我有一个搜索词时它才有效。而且它不适用于多个搜索词。

alias w3g='f(){ w3m https://www.duckduckgo.com/?q=$@;  unset -f f; }; 
f'
alias lyg='f(){ lynx https://www.duckduckgo.com/?q=$@;  unset -f f;
}; f'

有什么解决办法吗?

答案1

在您的示例中,URL 将变为:

https://www.duckduckgo.com/?q=most popular unix text browsers

这不是有效的 URL,因为它包含空格。您可以将空格替换为任一%20或更简单的+

让我们摆脱别名,因为无论如何它们只是较弱的函数,并创建一个正确的函数:

lynxsearch () {
    local search=$@
    search="${search// /%20}"
    lynx "https://www.duckduckgo.com/?q=$search"
}

把这个放在你的.bashrc而不是.bash_aliases.

相关内容