On Thu, 2021-03-18 at 21:35 -0400, Scott Andrews wrote: > > Found something interesting.... > > Per the gnu bash reference manual...... > > -f file > True if file exists and is a regular file. > > -h file > True if file exists and is a symbolic link. > > -x file > True if file exists and is executable. > > Function as built from rc > > check_script_status() > { > # $i is set when called > if [ ! -f ${i} ]; then > log_warning_msg "${i} is not a valid symlink." > SCRIPT_STAT="1" > fi > > if [ ! -x ${i} ]; then > log_warning_msg "${i} is not executable, skipping." > SCRIPT_STAT="1" > fi > } > > > So the construct/function in rc should be > > check_script_status() > { > # $i is set when called > if [ ! -x ${i} ]; then > log_warning_msg "${i} is either missing and or not executable, > skipping." SCRIPT_STAT="1" > fi > } > > This check is meaningless and misleading > > if [ ! -f ${i} ]; then > log_warning_msg "${i} is not a valid symlink." > SCRIPT_STAT="1" > fi > > You are not checking for a symlink that would be > if [ ! -h ${i} ]; then if you were testing for a symlink > > So it should stand as.... > > # Checks for a symlink and the file it points to exist > # and is executable. > # Called: check_script_status <symlink> > # where <symlink> is a "pointer" to the script to check > # Sets: Local SCRIPT_STAT, "0" = OK, "1" = FAILURE > # > function check_script_status { > local i="${1}" > # initialize status as "OK" > SCRIPT_STAT="0" > if [[ ! -h "${i}" ]]; then > log_warning_msg "${i} is not a valid symlink." > SCRIPT_STAT="1" > fi > if [[ ! -x "${i}" ]]; then > log_warning_msg "${i} is not executable, skipping." > SCRIPT_STAT="1" > fi > return > } > > That is if one really wanted to check the symlink and if the file > pointed to by the symlink exists and is executable. > > > Pierre Labastie: > > You stated..... > > "It's preferable to use quotes around any variable you do not know in > advance: script="$1" " > > So how come the rc script (as above, cut and pasted from the rc > script himself ) is the same as the example I posted ? > > You see the variable in 'if [ ! -h ${i} ]; then' (copied and pasted > from the current script rc) would then suffer the same breakage. > > Now I am not disagreeing with you, but on the contrary, if you are > correcting some one should the boot scripts not follow your example? > > The code fragment I posted previously was only an example for > discussion and certainly not production code. > > Hence this is one of the reasons I stated that the boot scripts needs > a general cleanup and if cleaning them up a standard format. >
I've never said boot scripts were well written! And actually, I've not been involved in writing them. I just use them and they just work, so I've never felt the need to modify them. I'm glad you endeavor doing so. That's why I made those style points, because I think it would be a good opportunity to fix them too. Pierre -- http://lists.linuxfromscratch.org/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/blfs/faq.html Unsubscribe: See the above information page Do not top post on this list. A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting. Q: What is the most annoying thing in e-mail? http://en.wikipedia.org/wiki/Posting_style