Bash shell script for test the availability about commands in the filesystem
The objective is the reuse about variables and why not all GNU/Linux distributions installs the commands by default in the same place
I am going to allocate a variable per each different command. This file will be included in other shell scripts.
preferences.cfg
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | CMD_AWK="/usr/bin/awk" CMD_CAT="/bin/cat" CMD_CHGRP="/bin/chgrp" CMD_CHMOD="/bin/chmod" CMD_DD="/bin/dd" CMD_DIFF="/usr/bin/diff" CMD_ECHO="/bin/echo" CMD_FIND="/usr/bin/find" CMD_GREP="/bin/grep" CMD_LAST="/usr/bin/last" CMD_LASTB="/usr/bin/lastb" CMD_LS="/bin/ls" CMD_LSB_RELEASE="/usr/bin/lsb_release" CMD_MKDIR="/bin/mkdir" CMD_MKFS="/sbin/mkfs.ext2" CMD_MKNOD="/bin/mknod" CMD_MOUNT="/bin/mount" CMD_MYSQL="/usr/bin/mysql" CMD_PHP="/usr/bin/php5" CMD_SED="/bin/sed" CMD_SEQ="/usr/bin/seq" CMD_SORT="/usr/bin/sort" CMD_STAT="/usr/bin/stat" CMD_TAIL="/usr/bin/tail" CMD_TOUCH="/bin/touch" CMD_TUNE2FS="/sbin/tune2fs" CMD_UNAME="/bin/uname" CMD_YES="/usr/bin/yes" CMD_WC="/usr/bin/wc" |
This shell script "preferences.bash" checks the availability about each command defined in the variables saved in the data file "preferences.cfg".
preferences.bash
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #!/bin/bash # Check the availability about the commands that will be used # Include global preferences source $PWD/preferences.cfg CMD=$($CMD_CAT $PWD/preferences.cfg) echo -e "Check the availability about the commands that will be used \r" # Checks if path is ok for line in $CMD; do TEST=$($CMD_ECHO "$line" | $CMD_AWK -F= '{ print $2 }' | $CMD_SED 's/"//g') echo -n "" if [ -e $TEST ]; then echo -n "[Passed]" else echo -n "[Failed]" fi echo -n " ... $TEST" echo -e "\r" done; |
Sample output
Check the availability about the commands that will be used
[Passed] … /usr/bin/awk
[Passed] … /bin/cat
[Passed] … /bin/chgrp
[Passed] … /bin/chmod
[Passed] … /bin/dd
[Passed] … /usr/bin/diff
[Passed] … /bin/echo
[Passed] … /usr/bin/find
[Passed] … /bin/grep
[Passed] … /usr/bin/last
[Passed] … /usr/bin/lastb
[Passed] … /bin/ls
[Passed] … /usr/bin/lsb_release
[Passed] … /bin/mkdir
[Passed] … /sbin/mkfs.ext2
[Passed] … /bin/mknod
[Passed] … /bin/mount
[Failed] … /usr/bin/mysql
[Failed] … /usr/bin/php5
[Passed] … /bin/sed
[Passed] … /usr/bin/seq
[Passed] … /usr/bin/sort
[Passed] … /usr/bin/stat
[Passed] … /usr/bin/tail
[Passed] … /bin/touch
[Passed] … /sbin/tune2fs
[Passed] … /bin/uname
[Passed] … /usr/bin/yes
[Passed] … /usr/bin/wc
