#!/usr/bin/env bash IFS='/' read -r -a PINPATH <<< "$1" DIR=${PINPATH[0]} NAM=${PINPATH[1]} PIN=$2 VAL=$3 SED=$(which gsed || which sed) eval "${SED} -i '/\(\/\/\)*\(#define \+${PIN}\b\).*$/{s//\2 ${VAL}/;h};\${x;/./{x;q0};x;q9}' Marlin/src/pins/$DIR/pins_${NAM}.h" || (echo "ERROR: pins_set Can't find ${PIN}" >&2 && exit 9)