This is the rc-scripts style manual. It governs the coding style of rc-scripts. Everything here might as well have been spoken by God. If you find any issues, please talk to base-system@gentoo.org or #gentoo-base on irc.freenode.net. ############# # VARIABLES # ############# - User Variables - Variables must always be enclosed by {} e.g. ${foo} ${bar} - Internal Shell Variables - Do not use {} with internal variables unless appropriate e.g. case $1 in e.g. foo=$IFS e.g. echo "blah${1}123" - Assigning with Quotes - When assigning to a variable from another variable, you should not need quotes. However, you do when assigning from a subshell. e.g. foo=${bar} e.g. foo="$(uname -a)" ######### # TESTS # ######### - Brackets - Always use the [ ... ] form instead of [[ ... ]] as the later only really works in bash, and we should support as many shells as we can. - Quoting - When dealing with strings, you should quote both sides. ############### # CODE BLOCKS # ############### - Structure - Use the more compact form e.g. if ... ; then e.g. while ... ; do Do not use the older form e.g. if ... then - Functions - Use the more compact form e.g. foo() { Do not lead with 'function ' e.g. function foo() { ############ # COMMENTS # ############ - General - Try to include a comment block before sections of code to explain what you're attempting