Created
January 29, 2025 04:51
-
-
Save naogify/dc6f8e4064ed18e4a7d77b19ea5a6574 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| # -------------------------------------------------- | |
| # run_wgrib2.sh | |
| # | |
| # このスクリプトは、指定された GRIB2 ファイルを | |
| # Docker コンテナ内で wgrib2 を使用して処理します。 | |
| # | |
| # 使用方法: | |
| # ./run_wgrib2.sh /path/to/your/file.bin | |
| # | |
| # 引数: | |
| # /path/to/your/file.bin - 処理したい GRIB2 ファイルのパス | |
| # | |
| # 依存関係: | |
| # - Docker がインストールされていること | |
| # - realpath コマンドが利用可能であること | |
| # | |
| # -------------------------------------------------- | |
| # エラーハンドリング: 任意のコマンドが失敗した場合にスクリプトを終了 | |
| set -e | |
| # 関数: エラーメッセージを表示して終了 | |
| function error_exit { | |
| echo "Error: $1" >&2 | |
| exit 1 | |
| } | |
| # 引数の数をチェック | |
| if [ "$#" -ne 1 ]; then | |
| echo "Usage: $0 /path/to/your/file.bin" | |
| exit 1 | |
| fi | |
| # 引数からファイルパスを取得 | |
| FILE_PATH="$1" | |
| # ファイルの存在を確認 | |
| if [ ! -f "$FILE_PATH" ]; then | |
| error_exit "File '$FILE_PATH' does not exist." | |
| fi | |
| # realpath コマンドを使用して絶対パスを取得 | |
| # realpath が利用できない場合は、readlink -f を使用 | |
| if command -v realpath >/dev/null 2>&1; then | |
| ABS_PATH=$(realpath "$FILE_PATH") | |
| elif command -v readlink >/dev/null 2>&1; then | |
| ABS_PATH=$(readlink -f "$FILE_PATH") | |
| else | |
| error_exit "Neither 'realpath' nor 'readlink' commands are available." | |
| fi | |
| # ファイルのディレクトリとファイル名を取得 | |
| DIR_PATH=$(dirname "$ABS_PATH") | |
| FILE_NAME=$(basename "$ABS_PATH") | |
| # Docker イメージ名 | |
| IMAGE_NAME="geolonia/wgrib2:1.3" | |
| # Docker イメージが存在するか確認 | |
| if ! docker image inspect "$IMAGE_NAME" >/dev/null 2>&1; then | |
| error_exit "Docker image '$IMAGE_NAME' not found. Please pull or build the image first." | |
| fi | |
| # Docker コマンドを実行 | |
| docker run --rm -v "$DIR_PATH":/data "$IMAGE_NAME" /data/"$FILE_NAME" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment