bash+awkでiniファイルを読み込むには?

今回読み取るiniファイル。 コメントなし、キーと値の間にはスペースなし。 [setting] encoding=libx264 default_width=1920 default_height=1080 default_fps=60 A. すべての値を読み出す #!/bin/bash ini_file="config.ini" section="setting" eval "$( awk -F= -v section="$section" ' $0 == "["section"]" {in_section=1; next} /^\[/ {in_section=0} in_section && NF==2 { gsub(/\r/, "", $2) print $1 "=\"" $2 "\"" } ' "$ini_file" )" # 使用例 echo "$encoding" echo "$default_width" echo "$default_height" echo "$default_fps" B. 特定のキーの値を読み出す #!/bin/bash readSetting() { local key="$1" local section="setting" local ini_file="config.ini" awk -F= -v section="$section" -v key="$key" ' $0 == "["section"]" {in_section=1; next} /^\[/ {in_section=0} in_section && $1 == key { print $2 exit } ' "$ini_file" } # 使用例 ENCODING=$(readSetting encoding) WIDTH=$(readSetting default_width) HEIGHT=$(readSetting default_height) FPS=$(readSetting default_fps)

2026年1月21日