【shell】複数の画像を縦に並べてブラウザに表示させる方法

複数の画像を縦に並べて、ブラウザに表示させるプログラムをシェルを使って組んでみた。

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の場合、
このシェルファイルを呼び出すワークフローを作成。
縦並びに表示させたい画像の入っているフォルダを選択し、右クリックから、そのワークフローを実行する。