Jump to content

Recommended Posts

Posted

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=""

 

Posted

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.

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines