$ vi /usr/local/bin/wpchange
#!/bin/bash
# wallpaper changer
# 2014.01.25 ver 1.0 watari
# とりあえず作成
# 2014.02.03 ver 2.0 watari
# 壁紙ディレクトリの指定機能を追加
# 2014.03.25 ver 2.1 watari
# ディレクトリ選択時にキャンセルした場合の処理を追加
# crontab指定
# --- ココカラ ---
# # 壁紙チェンジャー
# */15 * * * * /usr/local/bin/wpchange -c > /dev/null 2>&1
# --- ココマデ ---
# ここの時間指定で変更タイミングを修正する。
# お約束
## 更新対象(壁紙ディレクトリ)
PCMANDIR="${HOME}/.config/pcmanfm/LXDE"
WPCONF="${PCMANDIR}/pcmanfm.conf"
DIRCONF="${PCMANDIR}/pictdir.conf"
# お仕事開始
## オプションによる機能選択
case $1 in
--selectdir | -s)
## お約束
PICTDIR=`zenity --file-selection --title "壁紙ディレクトリの選択" --directory`
if [ $? -eq 0 ]; then
## ディレクトリ設定ファイルの存在確認
if [ ! -f ${DIRCONF} ]; then
touch ${DIRCONF}
fi
## 指定されたディレクトリを設定ファイルへ書き込む
echo ${PICTDIR} > ${DIRCONF}
## GUIにて設定完了のお知らせ
zenity --info --title="設定完了のお知らせ" --text="壁紙ディレクトリに ${PICTDIR} を指定しました。"
## おしまい
exit 0
else
## メッセージなしに終了
exit 0
fi
;;
--changepict | -c)
WPDIR=`cat ${DIRCONF}`
##ファイル一覧
WPLST=($(ls ${WPDIR}))
## 要素数
i=${#WPLST[@]}
## 現在の壁紙
NOWWP=`grep "wallpaper=" ${WPCONF} | awk -F"=" '{ print $2 }'`
## 変更予定の壁紙
RAND=$(((RANDOM % ${i})+1))
NEXTWP=${WPLST[${RAND}]}
if [ ${NOWWP} == ${NEXTWP} ]; then
RAND2=$(((RANDOM % ${i})+1))
NEXTWP=${WPLST[${RAND2}]}
fi
pcmanfm -w ${WPDIR}/${NEXTWP}
exit 0
;;
*)
if [ ! ${DISPLAY} == "" ]; then
zenity --warning --text="利用できるオプションは、--selectdir または -s と、--changepict または -c の2種類です。"
exit 1
else
echo "Usage: $0 Option Failed."
echo " MUST with --selectdir(-s) or --changepict(-c)."
exit 1
fi
;;
esac
exit 0
これ1つでオプション指定によって2つの機能が利用できる。
2014年2月3日月曜日
壁紙チェンジャー改良
前回のスクリプトから、さらに機能追加して、壁紙ディレクトリを選択できるように改良した。
(しかもGUIで可能!)
2011年7月11日月曜日
Shell Script で環境変数を設定する方法
コマンドを使用する。
たとえば、
#!/bin/sh export LANG=ja_JP.utf-8というスクリプト「a.sh」があるとすると、
$ source ./a.shで反映される。
2011年4月19日火曜日
2011年4月18日月曜日
大量のファイルを削除する
特定のディレクトリのファイルが多すぎて、rm だと
$ rm * bash: /bin/rm: Agrument list too longみたいになってしまうときは、
$ find ./ -exec rm {} \;
とすれば、見つけたファイルを1つずつを rm に渡すので消去可能。 ただ、これだと、29万のファイルを消すときには、rm が 29万回実行される という恐ろしく時間がかかる状況になってしまうので、
$find ./ | xargs rmとすると、引数でわたる最大限の個数を複数回でわたすので、上記の例より 比較的速く実行されることになる。
参考: ディノオープンラボラトリ
2010年10月5日火曜日
負荷テスト目的で円周率の計算
※bc が入っていることが前提
$ time (echo "scale=5000"; 4*a(1)" | bc -l)これで、C言語で、5000桁の円周率を計算しつつ、その処理時間を測ることができる。
2010年9月28日火曜日
登録:
投稿 (Atom)
DNS named.root 更新確認スクリプト
#!/bin/bash # DNSのnamed.rootファイルの更新確認スクリプト # 最新版のnamed.rootファイルを取得し、差分を確認する。 # 更新履歴 # 2014.02.07 watari # お約束 export LANG=C ## 実行ディレクトリ #PR...
-
前回のスクリプトから、さらに機能追加して、壁紙ディレクトリを選択できるように改良した。 (しかもGUIで可能!) $ vi /usr/local/bin/wpchange #!/bin/bash # wallpaper changer # 2014.01.25 ver 1.0 w...
-
#!/bin/bash # DNSのnamed.rootファイルの更新確認スクリプト # 最新版のnamed.rootファイルを取得し、差分を確認する。 # 更新履歴 # 2014.02.07 watari # お約束 export LANG=C ## 実行ディレクトリ #PR...
-
$ vi /usr/local/bin/wpchange.sh --- ココカラ --- #!/bin/bash # wallpaper changer # 2014.01.25 watari # ver 1.0 # # お約束 ## 更新対象(壁紙ディレクトリ) WPDIR...