wg-quick command is a bash script. The loop reading keys (such as the
PostUp key) is using
read -r which prevents any use of
to separate lines. But reading this same script shows:
to declare it as an array, and:
PostUp) POST_UP+=( "$value" ); continue ;;
to add an element to the array.
It's then executed later with (there's an
eval command in the function
Thus one can split multiple commands (but not arbitrary lines) by using multiple times the same key entry. So OP's example would work like this:
PostUp = iptables -A FORWARD -i %i -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Actually the man page already tells it:
• PreUp, PostUp, PreDown, PostDown — script snippets which will be
executed by bash(1) before/after setting up/tearing down the
interface, most commonly used to configure custom DNS options or
firewall rules. The special string `%i' is expanded to INTERFACE.
Each one may be specified multiple times, in which case the commands are executed in order.