シェルスクリプトでクリップボードの監視をしてみる
はじめに
技術調査のためにひたすら参考になるキーワードをコピペしていましたが、自動的にテキストファイルに吐き出したかったのでスクリプトを書いてみました。
デフォルト状態ではMacで用意されているpbcopy
/pbpaste
コマンドで動作しますが、同等のコマンド名を引数で渡してやればLinuxやCygwinでも動作します。
検証環境
$ uname -moi
x86_64 MacBookPro11,4 Darwin
$ bash -version | head -n 1
GNU bash, バージョン 5.0.11(1)-release (x86_64-apple-darwin18.6.0)
スクリプト
watch_cb.sh
という名前で作成しました。
クリップボードの内容が変わったタイミングで出力が行われます。
#!/usr/bin/env bash
set -o errexit
set -o nounset
set -o noclobber
COMMAND_TO_COPY="${1:-pbcopy}"
COMMAND_TO_PASTE="${2:-pbpaste}"
echo '' \
| "${COMMAND_TO_COPY}"
PRE_CLIP=
while :; do
CLIP="$(${COMMAND_TO_PASTE})"
if [[ ${PRE_CLIP} != "${CLIP}" ]]; then
# ---- Event occurs ----
PRE_CLIP="${CLIP}"
echo "${PRE_CLIP}"
fi
sleep 1
done
実行方法
# コンソール上に表示するだけ
$ ./watch_cb.sh
# ファイルにも保存したい
$ ./watch_cb.sh | tee memo.txt
# 追記
$ ./watch_cb.sh | tee -a memo.txt
# 特定の条件に合致したものだけに絞り込む
$ ./watch_cb.sh | grep https | tee memo.txt
ひとこと
イベント発生部分を汎用化させれば、もっと色々できそう。
ディスカッション
コメント一覧
まだ、コメントがありません