複数の画像を縦に並べて、ブラウザに表示させるプログラムをシェルを使って組んでみた。
test.sh
ROOT_PATH="$1" #フォルダのパス
export IMGS
get_dirs() {
local DIR="$1"
local DIRS=`eval "find \"${DIR}\" -type d | sort 2>/dev/null"`
if [ $? -ne 0 ]; then
echo "" # 予期せぬエラーの場合
elif [ -z "${DIRS}" ]; then
echo "" # 存在しない場合
else
echo "${DIRS}" # 存在する場合
fi
}
get_files() {
local DIR="${1}"
local EXTS="${2}"
local FILES=`eval "find -E \"${DIR}\" -maxdepth 1 -type f -iregex \".*\.(${EXTS})\" | sort -V 2>/dev/null"`
if [ $? -ne 0 ]; then
echo "" # 予期せぬエラーの場合
elif [ -z "${FILES}" ]; then
echo "" # 存在しない場合
else
echo "${FILES}" # 存在する場合
fi
}
for DIR in `get_dirs "${ROOT_PATH}"`;
do
cd "${DIR}"
IMGS=""
for FILE01 in `get_files "." "jpg|png"`;
do
FILE01_EXT="${FILE01##*/}"
IMG="<img src=\"${FILE01_EXT}\" />"
IMGS="${IMGS}<br/>${IMG}"
done
cat << EOT > index.html
<!DOCTYPE html>
<HTML lang="ja">
<HEAD>
<meta charset="UTF-8" />
<TITLE>IMGS</TITLE>
<style>
body{
margin:0;
padding:0;
font-size:0;
}
</style>
</HEAD>
<BODY>
$IMGS
</BR>
</BR>
</BODY>
</HTML>
EOT
open "index.html"
break
done
MACの場合、
このシェルファイルを呼び出すワークフローを作成。
縦並びに表示させたい画像の入っているフォルダを選択し、右クリックから、そのワークフローを実行する。