今回読み取る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)