画像検索結果上位N番目のダウンロードとランダムな壁紙設定
前回までのシェルスクリプト、
Google画像検索ダウンロードにサイズと保存ファイル名オプション追加 - へにゃぺんて@日々勉強のまとめ
に以下の機能追加を行いました。
- 検索結果上位N番目をダウンロード(-nオプション、Nは1以上20以下の整数)
スクリプト
#!/bin/sh while getopts f:w:h:n: OPT; do case $OPT in 'f' ) FLG_F='TRUE' ; VALUE_F="$OPTARG" ;; 'w' ) FLG_W='TRUE' ; VALUE_W="$OPTARG" ;; 'h' ) FLG_H='TRUE' ; VALUE_H="$OPTARG" ;; 'n' ) FLG_N='TRUE' ; VALUE_N="$OPTARG" ;; esac done shift $(( $OPTIND - 1 )) UA=Mozilla/5 URL=http://www.google.com/images?q=$(echo $* | nkf -WwMQ | tr = %) if [ "$FLG_W" = 'TRUE' -o "$FLG_H" = 'TRUE' ]; then URL_OPT="&tbs=isz:ex,iszw:$VALUE_W,iszh:$VALUE_H" fi IMG_URLS=$(curl -s -A $UA $URL$URL_OPT | sed 's/>/>\n/g' | sed 's/?/\n/g' | sed 's/&/\n/g' | sed 's/%/\n/g' | grep imgurl) if [ "$FLG_N" = 'TRUE' ]; then IMG_NUM="$VALUE_N" else IMG_NUM='1' fi IMG_URL=$(echo "$IMG_URLS" | sed -n "$IMG_NUM"p | cut -d'=' -f2) if [ "$FLG_F" = 'TRUE' ]; then wget -O $VALUE_F -U $UA $IMG_URL else wget -U $UA $IMG_URL fi
使い方
スクリプトを「gimg.sh」としてダウンロードし、実行権限を付加済みとすると、
今回追加した機能は以下の様に使用できます。
例) 「linux」というキーワードの上位3番目をダウンロード
$ ./gimg.sh -n 3 linux
応用「ランダムに壁紙を設定」
画面解像度が1440x900だとすると、以下のワンライナーで行えます。
$ ./gimg.sh -f wall_paper -w 1440 -h 900 -n "$(($RANDOM%20+1))" 壁紙;display -window root wall_paper
注意
「sh」等の古いシェルでは利用できません。シェルスクリプトで利用する際にも、「#!/bin/sh」としないようにしてください。
- 壁紙設定に「display」コマンドを利用しています
コマンドライン上での壁紙設定(ルートウィンドウへの画像表示)の方法は色々あります。
ImageMagickをインストールしていない(displayコマンドが無い)などの際には、下記に示しておりますその他の方法もお試しください。
(もちろん、ImageMagickをインストールして、displayコマンドを使用してもいいです。)