Skip to the content.

15. Coding Style


本章记录了在实时系统中使用的编码风格。

15.1 Compatibility

15.2 Indenting

好的:

case "${1}" in
         foo)
                 foobar
                 ;;

         bar)
                 foobar
                 ;;
esac

15.3 Wrapping

首选:

if foo; then
         bar
fi

for FOO in $ITEMS; do
         bar
done

if [ "${MY_LOCATION_VARIABLE}" = "something" ] && [ -e "${MY_OUTPUT_FILE}" ]
then
         MY_OTHER_VARIABLE="$(some_bin ${FOOBAR} | awk -F_ '{ print $1 }')"
fi

if [ "${MY_FOO}" = "something" ] && [ -e "path/${FILE_1}" ] ||
   [ "${MY_BAR}" = "something_else" ] && [ ${ALLOW} = "true" ]
then
         foobar
fi

不太理想:

if [ "${MY_LOCATION_VARIABLE}" = "something" ] && [ -e "${MY_OUTPUT_FILE}" ]; then
         MY_OTHER_VARIABLE="$(some_bin ${FOOBAR} | awk -F_ '{ print $1 }')"
fi

可怕的:

if [ "${MY_LOCATION_VARIABLE}" = "something" ] && [ -e "${MY_OUTPUT_FILE}" ] || [ "${MY_LOCATION_VARIABLE}" = "something-else" ] && [ -e "${MY_OUTPUT_FILE_2}" ]; then
         MY_OTHER_VARIABLE="$(some_bin ${FOOBAR} | awk -F_ '{ print $1 }')"
fi

好的:

Foo ()
{
         bar
}

坏的(与现有风格不一致):

Foo () {
         bar
}

可怕的:

Foo ()
         {
         bar
         }

15.4 Variables

坏的:

FOO=bar

好的:

FOO="bar"

典型坏的:

if [ -f "${FOO}"/foo/"${BAR}"/bar ]; then
         foobar
fi

好的:

if [ -f "${FOO}/foo/${BAR}/bar" ]; then
         foobar
fi

15.5 Miscellaneous