プロンプトで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

おすすめ記事