lanefu Posted September 9, 2018 Posted September 9, 2018 This is really just a bash-centic question, but I'm baffled an tired of googling. Why does passing KEY=VALUE args to compile.sh work? I don't see bash flags, arg parsing or anything. I'm trying to do something similar in another script I'm just baffled. ex: sudo ./compile.sh EXPERT=yes EXTERNAL_NEW="compile" BOARD=orangepi-r1 BRANCH=next RELEASE="jessie" DESKTOP=no KERNEL_ONLY=yes KERNEL_CONFIGURE=no CLEAN_LEVEL=""
zador.blood.stained Posted September 9, 2018 Posted September 9, 2018 https://github.com/armbian/build/blob/master/compile.sh#L51-L59 # Script parameters handling for i in "$@"; do if [[ $i == *=* ]]; then parameter=${i%%=*} value=${i##*=} display_alert "Command line: setting $parameter to" "${value:-(empty)}" "info" eval $parameter=$value fi done Not sure if this solution is 100% bullet-proof (i.e. for handling special characters and values with spaces) but it works for the build script needs. 1
Recommended Posts