vimerの皆さん,ターミナルで操作することが多いみなさん,何かググりたい時ブラウザを開いて検索する...要するにいちいちブラウザを開いて検索をするのがめんどくさいなあと思いませんか?
つまり,ブラウザを開く手間があることが嫌なのです.本記事ではシェルスクリプトでブラウザを開いてGoogle検索を行う関数を作成する手順を紹介する.
結論
結論を先に言うと,openコマンドを使えば検索は...できる
open "https://www.google.com/search?q=hello+world"
これを実行すればターミナルでブラウザを開いてhello worldをgoogle検索できる.
ここで...
いちいちhttpsとかgoogleとか入力するのがめんどくさい!
と思いますよね?
ここでなんとかこの手間を省きたいですね!
イメージとして以下のコマンドで検索できるといいですね
s hello world
シェルスクリプトで楽しよう
シェルスクリプトを使用して,ターミナルから直接ブラウザを開いてGoogle検索を行う機能を実装できる.
function s() {
local search_query="$@"
local encoded_query=$(echo "$search_query" | sed 's/ /+/g')
open "https://www.google.com/search?q=$encoded_query"
}
この関数は,以下の手順で動作する.
-
関数名 s を定義する.
-
引数として渡された検索クエリを $@ で受け取り,search_query 変数に格納する.
-
sed コマンドを使用して,検索クエリ内のスペースを + に置換し,URLエンコーディングの簡易版を実現する.
-
open コマンドを使用して,デフォルトのブラウザでGoogle検索URLを開く.
どのファイルに書く?使用例は?
この関数を使用するには,シェルの設定ファイル(.bashrc や .zshrc など)に関数を追加し,シェルを再起動するか設定を再読み込み(ターミナルの再起動)をする必要がある.
以下のコマンドで.zshrcの設定を適用できる
source ~/.zshrc
s hello world
これで「hello world」という検索クエリでGoogle検索が行われ,結果がデフォルトのブラウザで表示される.
注意点
この実装は主にmacOS向けであり,open コマンドを使用している.Linux系OSでは xdg-open,Windowsでは start コマンドを使用する必要がある.また,より堅牢なURLエンコーディングを行うには,jq などのツールを使用することが推奨される.
この関数を使用することで,コマンドラインから迅速にWeb検索を行うことができ,開発者の作業効率向上に貢献すると思います.
余裕があればターミナル上で動作するブラウザをchromiumベースで作ってみようと思う.
有識者の方chromiusのこと教えてください