스크린 샷을 찍고 날짜 디렉토리에 일련 번호로 저장하는 스크립트
5670 단어 ShellScript쉘 스크립트
아래 스크립트
sh ~/bin/screenshot.sh
와 같이 옵션 없이 실행하면(자),
rootdir
에 지정한 디렉토리(아래의 예의 경우 $HOME/Workspace/blog
)안에, 오늘의 날짜의 디렉토리가 없는 경우에는 오늘의 날짜를 이름으로 한 디렉토리를 작성 그런 다음 "screen_001.jpg"와 같이 이름을 지정하여 전체 화면의 스크린 샷을 저장합니다. 디렉토리 안에 같은 형식으로 이름이 붙여진 파일이 있을 때에는 그 숫자를 읽고 가장 큰 숫자보다 더 큰 숫자를 붙여 저장합니다.실제로 사용해 가면 디렉토리 구조는 이런 느낌이 됩니다.
저장이 끝나면
notify-send
로 저장했음을 알립니다. Mac에서는 다른 알림 스크립트가 있다고 생각하기 때문에, 적당히 그쪽을 사용하면 좋을까 생각합니다.오른쪽 상단에 알림이 표시됩니다.
또, 기본적으로 키보드 단축키로서 사용하는 것을 생각하고 있으므로, 커멘드 라인으로부터 사용하는 장면은 그다지 생각하고 있지 않습니다만, 일단 옵션을 줄 수도 있습니다. "d"로 (날짜 디렉토리 대신) 저장할 디렉토리를 절대 경로로 지정할 수 있습니다. "o"로 저장할 이미지 파일의 이름을 지정할 수 있습니다.
덧붙여서 나의 경우는 키보드의 PrintScreen을 눌렀을 때는 화면 전체, Shift를 누르면서 PrintScreen를 눌렀을 때에는 범위 지정으로 스크린 샷을 찍도록 하고 있습니다.
screenshot.sh
#!/bin/sh
#
get_dir=false
get_name=false
rootdir=$HOME/Workspace/blog
if [ $# -le 0 ]; then
while getopts d:o: OPT
do
case $OPT in
"d" ) get_dir=true
dir="$OPTARG" ;;
"o" ) get_name=true
name="$OPTARG" ;;
* ) exit 1 ;;
esac
done
fi
# スクリーンショットを保存するディレクトリを設定
if ! $get_dir; then
if [ ! -e $rootdir ]; then
echo "There is no directory named: $rootdir"
exit 1
fi
daydir=`date +%Y-%m-%d`
dir=$rootdir/$daydir
fi
# ファイル名を設定
if ! $get_name; then
if [ ! -e $dir ]; then
mkdir $dir
i=1
else
i=`expr $(ls $dir | sed -n 's/screen_\([0-9]\{3\}\).jpg/\1/p' | tail -n 1) + 1`
fi
name=$(printf screen_%03d.jpg $i)
fi
import -window root -quality 0 $dir/$name
# 範囲選択 (別ファイルに分けてもよい)
# import -quality 0 $dir/$name
notify-send "Screenshot has been made" "saved: $dir/$name"
exit 0
이미지의 가공이나, 제대로 이름을 붙인다면, 나중에 수동으로 하지 않으면 안 되지만, 우선 아무것도 생각하지 않고 스쿠쇼를 찍을 수 있는 것은 편합니다.
Reference
이 문제에 관하여(스크린 샷을 찍고 날짜 디렉토리에 일련 번호로 저장하는 스크립트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ssh0/items/2b4e7a4146cb2da01187텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)