#!/usr/bin/env bash IFS='/' read -r -a PINPATH <<< "$1" DIR=${PINPATH[0]} NAM=${PINPATH[1]} SED=$(which gsed sed | head -n1) shift while [[ $# > 1 ]]; do PIN=$1 ; VAL=$2 eval "${SED} -i '/^[[:blank:]]*\(\/\/\)*[[:blank:]]*\(#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) shift 2 done