StrCmp and RegCmp Pitfall
From Cfwiki
The following is a code example shows how if you leave a space it will no work correctly.
control:
actionsequence = ( shellcommands )
sysnav_homedir = ( ExecResult(/bin/sh -c "/usr/bin/getent passwd sysnav | /usr/bin/awk -F: '{ print $6 }'") )
groups:
homedir_is_home_sysnav_dir_1 = ( StrCmp("/usr/local/sysnav", "${sysnav_homedir}") )
homedir_is_home_sysnav_dir_2 = ( StrCmp("/usr/local/sysnav","${sysnav_homedir}") )
homedir_is_home_sysnav_dir_3 = ( StrCmp(/usr/local/sysnav, ${sysnav_homedir}) )
homedir_is_home_sysnav_dir_4 = ( StrCmp(/usr/local/sysnav,${sysnav_homedir}) )
homedir_is_home_sysnav_dir_5 = ( RegCmp("/usr/local/sysnav", "${sysnav_homedir}") )
homedir_is_home_sysnav_dir_6 = ( RegCmp("/usr/local/sysnav","${sysnav_homedir}") )
homedir_is_home_sysnav_dir_7 = ( RegCmp(/usr/local/sysnav, ${sysnav_homedir}) )
homedir_is_home_sysnav_dir_8 = ( RegCmp(/usr/local/sysnav,${sysnav_homedir}) )
shellcommands:
homedir_is_home_sysnav_dir_1::
"/bin/echo homedir_is_home_sysnav_dir_1 successful."
!homedir_is_home_sysnav_dir_1::
"/bin/echo homedir_is_home_sysnav_dir_1 failed."
homedir_is_home_sysnav_dir_2::
"/bin/echo homedir_is_home_sysnav_dir_2 successful."
!homedir_is_home_sysnav_dir_2::
"/bin/echo homedir_is_home_sysnav_dir_2 failed."
homedir_is_home_sysnav_dir_3::
"/bin/echo homedir_is_home_sysnav_dir_3 successful."
!homedir_is_home_sysnav_dir_3::
"/bin/echo homedir_is_home_sysnav_dir_3 failed."
homedir_is_home_sysnav_dir_4::
"/bin/echo homedir_is_home_sysnav_dir_4 successful."
!homedir_is_home_sysnav_dir_4::
"/bin/echo homedir_is_home_sysnav_dir_4 failed."
homedir_is_home_sysnav_dir_5::
"/bin/echo homedir_is_home_sysnav_dir_5 successful."
!homedir_is_home_sysnav_dir_5::
"/bin/echo homedir_is_home_sysnav_dir_5 failed."
homedir_is_home_sysnav_dir_6::
"/bin/echo homedir_is_home_sysnav_dir_6 successful."
!homedir_is_home_sysnav_dir_6::
"/bin/echo homedir_is_home_sysnav_dir_6 failed."
homedir_is_home_sysnav_dir_7::
"/bin/echo homedir_is_home_sysnav_dir_7 successful."
!homedir_is_home_sysnav_dir_7::
"/bin/echo homedir_is_home_sysnav_dir_7 failed."
homedir_is_home_sysnav_dir_8::
"/bin/echo homedir_is_home_sysnav_dir_8 successful."
!homedir_is_home_sysnav_dir_8::
"/bin/echo homedir_is_home_sysnav_dir_8 failed."
If you run this code you will see the resulting output:
cfengine::/bin/echo h: homedir_is_home_sysnav_dir_1 failed. cfengine::/bin/echo h: homedir_is_home_sysnav_dir_2 successful. cfengine::/bin/echo h: homedir_is_home_sysnav_dir_3 failed. cfengine::/bin/echo h: homedir_is_home_sysnav_dir_4 successful. cfengine::/bin/echo h: homedir_is_home_sysnav_dir_5 failed. cfengine::/bin/echo h: homedir_is_home_sysnav_dir_6 successful. cfengine::/bin/echo h: homedir_is_home_sysnav_dir_7 failed. cfengine::/bin/echo h: homedir_is_home_sysnav_dir_8 successful.
