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