checks A library of checks.
lb_command_exists command Return 0 if command exists.
Parameters: Name Type Description Default command string The command to check for required
Examples: #!/usr/bin/env bash
# shellcheck source=/dev/null
source ../init
source " ${ LIBBASH_DIR } /checks"
function check_command(){
if lb_command_exists " ${ 1 } " ; then
printf '"%s" command exists\n' " ${ 1 } "
else
printf '"%s" command does not exist\n' " ${ 1 } "
fi
}
function check_file(){
if lb_file_exists " ${ 1 } " ; then
printf '"%s" file exists\n' " ${ 1 } "
else
printf '"%s" file does not exist\n' " ${ 1 } "
fi
}
function check_dir(){
if lb_dir_exists " ${ 1 } " ; then
printf '"%s" dir exists\n' " ${ 1 } "
else
printf '"%s" dir does not exist\n' " ${ 1 } "
fi
}
function check_var(){
if lb_is_null " ${ 1 } " ; then
printf '"%s" var is null\n' "FOO"
else
printf '"%s" var is not null\n' "LIBBASH_DIR"
fi
}
function check_int(){
if lb_is_int " ${ 1 } " ; then
printf '"%s" is an int\n' " ${ 1 } "
else
printf '"%s" is not an int\n' " ${ 1 } "
fi
}
function check_float(){
if lb_is_float " ${ 1 } " ; then
printf '"%s" is a float\n' " ${ 1 } "
else
printf '"%s" is not a float\n' " ${ 1 } "
fi
}
function check_bool(){
if lb_is_bool " ${ 1 } " ; then
printf '"%s" is a bool\n' " ${ 1 } "
else
printf '"%s" is not a bool\n' " ${ 1 } "
fi
}
function check_contain(){
if lb_contains " ${ 1 } " " ${ 2 } " ; then
printf '"%s" contains "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not contain "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_starts_with(){
if lb_starts_with " ${ 1 } " " ${ 2 } " ; then
printf '"%s" starts with "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not start with "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_ends_with(){
if lb_ends_with " ${ 1 } " " ${ 2 } " ; then
printf '"%s" ends with "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not end with "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_commands(){
check_command "foo"
check_command "ls"
}
function check_files(){
check_file " ${ LIBBASH_DIR } /foo"
check_file " ${ LIBBASH_DIR } /README.md"
}
function check_dirs(){
check_dir " ${ LIBBASH_DIR } /foo"
check_dir " ${ LIBBASH_DIR } "
}
function check_vars(){
FOO = ""
check_var " ${ FOO } "
check_var " ${ LIBBASH_DIR } "
}
function check_ints(){
check_int 1
check_int 11
check_int -1
check_int -11
check_int 1 .1
check_int 12 .12
check_int "foo"
}
function check_floats(){
check_float 1
check_float 12
check_float -1
check_float -12
check_float 12 .12
check_float -12.12
check_float .12
check_float 0 .12
check_float -.12
check_float 1 .
check_float "foo"
}
function check_bools(){
check_bool 0
check_bool 1
check_bool 2
check_bool -0
check_bool -1
check_bool true
check_bool TRUE
check_bool false
check_bool FALSE
check_bool "true"
check_bool "false"
check_bool "foo"
check_bool ""
}
function check_str_contains(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_contain " ${ string } " "foo"
check_contain " ${ string } " "bar"
check_contain " ${ string } " "baz"
}
function check_arr_contains(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_contain " ${ arr [*] } " "foo"
check_contain " ${ arr [*] } " "bar"
check_contain " ${ arr [*] } " "baz"
}
function check_str_starts_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_starts_with " ${ string } " "foo"
check_starts_with " ${ string } " "bar"
}
function check_arr_starts_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_starts_with " ${ arr [*] } " "foo"
check_starts_with " ${ arr [*] } " "baz"
}
function check_str_starts_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_starts_with " ${ string } " "foo"
check_starts_with " ${ string } " "bar"
}
function check_arr_starts_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_starts_with " ${ arr [*] } " "foo"
check_starts_with " ${ arr [*] } " "bar"
}
function check_str_ends_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_ends_with " ${ string } " "foo"
check_ends_with " ${ string } " "bar"
}
function check_arr_ends_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_ends_with " ${ arr [*] } " "foo"
check_ends_with " ${ arr [*] } " "bar"
}
function main() {
check_commands
check_files
check_dirs
check_vars
check_ints
check_floats
check_bools
check_str_contains
check_arr_contains
check_str_starts_with
check_arr_starts_with
check_str_ends_with
check_arr_ends_with
}
main " ${ @ } "
Show source code in checks #!/usr/bin/env bash
: " ${ LIBBASH_DIR :?LIBBASH_DIR must be set. Please source libbash/init before other libraries. } "
#------------------------------ Global Variables ------------------------------
#------------------------------ Private Functions -----------------------------
#------------------------------ Public Functions ------------------------------
# Check if command exists
function lb_command_exists(){
lb_check_args_num " ${ @ } " 1
command -v " ${ 1 } " & > /dev/null
}
# Check if file exists
function lb_file_exists(){
lb_check_args_num " ${ @ } " 1
[ -f " ${ 1 } " ]
}
# Check is variable is null
function lb_is_null {
lb_check_args_num " ${ @ } " 1
[ -z " ${ 1 } " ]
}
# Checkifdir exists
function lb_dir_exists() {
lb_check_args_num " ${ @ } " 1
[ -d " ${ 1 } " ]
}
function lb_is_int() {
lb_check_args_num " ${ @ } " 1
# https://stackoverflow.com/a/2210386/1061279
[[ " ${ 1 } " = ~ ^-?[ 0 -9] +$ ]]
}
function lb_is_float() {
lb_check_args_num " ${ @ } " 1
# https://stackoverflow.com/a/12643073/1061279
[[ " ${ 1 } " = ~ ^[ +-] ?([ 0 -9] *[ .]) ?[ 0 -9] +$ ]]
}
function lb_is_bool() {
lb_check_args_num " ${ @ } " 1
case ${ 1 } in
"true" | 1 | 0 | "false" ) return 0 ;;
*) return 1 ;;
esac
}
function lb_contains(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == *" ${ 2 } " * ]]
}
function lb_starts_with(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == " ${ 2 } " * ]]
}
function lb_ends_with(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == *" ${ 2 } " ]]
}
lb_file_exists file Return 0 if file exists.
Parameters: Name Type Description Default file string The file to check for required
Examples: #!/usr/bin/env bash
# shellcheck source=/dev/null
source ../init
source " ${ LIBBASH_DIR } /checks"
function check_command(){
if lb_command_exists " ${ 1 } " ; then
printf '"%s" command exists\n' " ${ 1 } "
else
printf '"%s" command does not exist\n' " ${ 1 } "
fi
}
function check_file(){
if lb_file_exists " ${ 1 } " ; then
printf '"%s" file exists\n' " ${ 1 } "
else
printf '"%s" file does not exist\n' " ${ 1 } "
fi
}
function check_dir(){
if lb_dir_exists " ${ 1 } " ; then
printf '"%s" dir exists\n' " ${ 1 } "
else
printf '"%s" dir does not exist\n' " ${ 1 } "
fi
}
function check_var(){
if lb_is_null " ${ 1 } " ; then
printf '"%s" var is null\n' "FOO"
else
printf '"%s" var is not null\n' "LIBBASH_DIR"
fi
}
function check_int(){
if lb_is_int " ${ 1 } " ; then
printf '"%s" is an int\n' " ${ 1 } "
else
printf '"%s" is not an int\n' " ${ 1 } "
fi
}
function check_float(){
if lb_is_float " ${ 1 } " ; then
printf '"%s" is a float\n' " ${ 1 } "
else
printf '"%s" is not a float\n' " ${ 1 } "
fi
}
function check_bool(){
if lb_is_bool " ${ 1 } " ; then
printf '"%s" is a bool\n' " ${ 1 } "
else
printf '"%s" is not a bool\n' " ${ 1 } "
fi
}
function check_contain(){
if lb_contains " ${ 1 } " " ${ 2 } " ; then
printf '"%s" contains "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not contain "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_starts_with(){
if lb_starts_with " ${ 1 } " " ${ 2 } " ; then
printf '"%s" starts with "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not start with "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_ends_with(){
if lb_ends_with " ${ 1 } " " ${ 2 } " ; then
printf '"%s" ends with "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not end with "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_commands(){
check_command "foo"
check_command "ls"
}
function check_files(){
check_file " ${ LIBBASH_DIR } /foo"
check_file " ${ LIBBASH_DIR } /README.md"
}
function check_dirs(){
check_dir " ${ LIBBASH_DIR } /foo"
check_dir " ${ LIBBASH_DIR } "
}
function check_vars(){
FOO = ""
check_var " ${ FOO } "
check_var " ${ LIBBASH_DIR } "
}
function check_ints(){
check_int 1
check_int 11
check_int -1
check_int -11
check_int 1 .1
check_int 12 .12
check_int "foo"
}
function check_floats(){
check_float 1
check_float 12
check_float -1
check_float -12
check_float 12 .12
check_float -12.12
check_float .12
check_float 0 .12
check_float -.12
check_float 1 .
check_float "foo"
}
function check_bools(){
check_bool 0
check_bool 1
check_bool 2
check_bool -0
check_bool -1
check_bool true
check_bool TRUE
check_bool false
check_bool FALSE
check_bool "true"
check_bool "false"
check_bool "foo"
check_bool ""
}
function check_str_contains(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_contain " ${ string } " "foo"
check_contain " ${ string } " "bar"
check_contain " ${ string } " "baz"
}
function check_arr_contains(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_contain " ${ arr [*] } " "foo"
check_contain " ${ arr [*] } " "bar"
check_contain " ${ arr [*] } " "baz"
}
function check_str_starts_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_starts_with " ${ string } " "foo"
check_starts_with " ${ string } " "bar"
}
function check_arr_starts_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_starts_with " ${ arr [*] } " "foo"
check_starts_with " ${ arr [*] } " "baz"
}
function check_str_starts_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_starts_with " ${ string } " "foo"
check_starts_with " ${ string } " "bar"
}
function check_arr_starts_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_starts_with " ${ arr [*] } " "foo"
check_starts_with " ${ arr [*] } " "bar"
}
function check_str_ends_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_ends_with " ${ string } " "foo"
check_ends_with " ${ string } " "bar"
}
function check_arr_ends_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_ends_with " ${ arr [*] } " "foo"
check_ends_with " ${ arr [*] } " "bar"
}
function main() {
check_commands
check_files
check_dirs
check_vars
check_ints
check_floats
check_bools
check_str_contains
check_arr_contains
check_str_starts_with
check_arr_starts_with
check_str_ends_with
check_arr_ends_with
}
main " ${ @ } "
Show source code in checks #!/usr/bin/env bash
: " ${ LIBBASH_DIR :?LIBBASH_DIR must be set. Please source libbash/init before other libraries. } "
#------------------------------ Global Variables ------------------------------
#------------------------------ Private Functions -----------------------------
#------------------------------ Public Functions ------------------------------
# Check if command exists
function lb_command_exists(){
lb_check_args_num " ${ @ } " 1
command -v " ${ 1 } " & > /dev/null
}
# Check if file exists
function lb_file_exists(){
lb_check_args_num " ${ @ } " 1
[ -f " ${ 1 } " ]
}
# Check is variable is null
function lb_is_null {
lb_check_args_num " ${ @ } " 1
[ -z " ${ 1 } " ]
}
# Checkifdir exists
function lb_dir_exists() {
lb_check_args_num " ${ @ } " 1
[ -d " ${ 1 } " ]
}
function lb_is_int() {
lb_check_args_num " ${ @ } " 1
# https://stackoverflow.com/a/2210386/1061279
[[ " ${ 1 } " = ~ ^-?[ 0 -9] +$ ]]
}
function lb_is_float() {
lb_check_args_num " ${ @ } " 1
# https://stackoverflow.com/a/12643073/1061279
[[ " ${ 1 } " = ~ ^[ +-] ?([ 0 -9] *[ .]) ?[ 0 -9] +$ ]]
}
function lb_is_bool() {
lb_check_args_num " ${ @ } " 1
case ${ 1 } in
"true" | 1 | 0 | "false" ) return 0 ;;
*) return 1 ;;
esac
}
function lb_contains(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == *" ${ 2 } " * ]]
}
function lb_starts_with(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == " ${ 2 } " * ]]
}
function lb_ends_with(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == *" ${ 2 } " ]]
}
lb_dir_exists dir Return 0 if dir exists.
Parameters: Name Type Description Default dir string The directory to check for required
Examples: #!/usr/bin/env bash
# shellcheck source=/dev/null
source ../init
source " ${ LIBBASH_DIR } /checks"
function check_command(){
if lb_command_exists " ${ 1 } " ; then
printf '"%s" command exists\n' " ${ 1 } "
else
printf '"%s" command does not exist\n' " ${ 1 } "
fi
}
function check_file(){
if lb_file_exists " ${ 1 } " ; then
printf '"%s" file exists\n' " ${ 1 } "
else
printf '"%s" file does not exist\n' " ${ 1 } "
fi
}
function check_dir(){
if lb_dir_exists " ${ 1 } " ; then
printf '"%s" dir exists\n' " ${ 1 } "
else
printf '"%s" dir does not exist\n' " ${ 1 } "
fi
}
function check_var(){
if lb_is_null " ${ 1 } " ; then
printf '"%s" var is null\n' "FOO"
else
printf '"%s" var is not null\n' "LIBBASH_DIR"
fi
}
function check_int(){
if lb_is_int " ${ 1 } " ; then
printf '"%s" is an int\n' " ${ 1 } "
else
printf '"%s" is not an int\n' " ${ 1 } "
fi
}
function check_float(){
if lb_is_float " ${ 1 } " ; then
printf '"%s" is a float\n' " ${ 1 } "
else
printf '"%s" is not a float\n' " ${ 1 } "
fi
}
function check_bool(){
if lb_is_bool " ${ 1 } " ; then
printf '"%s" is a bool\n' " ${ 1 } "
else
printf '"%s" is not a bool\n' " ${ 1 } "
fi
}
function check_contain(){
if lb_contains " ${ 1 } " " ${ 2 } " ; then
printf '"%s" contains "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not contain "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_starts_with(){
if lb_starts_with " ${ 1 } " " ${ 2 } " ; then
printf '"%s" starts with "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not start with "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_ends_with(){
if lb_ends_with " ${ 1 } " " ${ 2 } " ; then
printf '"%s" ends with "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not end with "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_commands(){
check_command "foo"
check_command "ls"
}
function check_files(){
check_file " ${ LIBBASH_DIR } /foo"
check_file " ${ LIBBASH_DIR } /README.md"
}
function check_dirs(){
check_dir " ${ LIBBASH_DIR } /foo"
check_dir " ${ LIBBASH_DIR } "
}
function check_vars(){
FOO = ""
check_var " ${ FOO } "
check_var " ${ LIBBASH_DIR } "
}
function check_ints(){
check_int 1
check_int 11
check_int -1
check_int -11
check_int 1 .1
check_int 12 .12
check_int "foo"
}
function check_floats(){
check_float 1
check_float 12
check_float -1
check_float -12
check_float 12 .12
check_float -12.12
check_float .12
check_float 0 .12
check_float -.12
check_float 1 .
check_float "foo"
}
function check_bools(){
check_bool 0
check_bool 1
check_bool 2
check_bool -0
check_bool -1
check_bool true
check_bool TRUE
check_bool false
check_bool FALSE
check_bool "true"
check_bool "false"
check_bool "foo"
check_bool ""
}
function check_str_contains(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_contain " ${ string } " "foo"
check_contain " ${ string } " "bar"
check_contain " ${ string } " "baz"
}
function check_arr_contains(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_contain " ${ arr [*] } " "foo"
check_contain " ${ arr [*] } " "bar"
check_contain " ${ arr [*] } " "baz"
}
function check_str_starts_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_starts_with " ${ string } " "foo"
check_starts_with " ${ string } " "bar"
}
function check_arr_starts_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_starts_with " ${ arr [*] } " "foo"
check_starts_with " ${ arr [*] } " "baz"
}
function check_str_starts_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_starts_with " ${ string } " "foo"
check_starts_with " ${ string } " "bar"
}
function check_arr_starts_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_starts_with " ${ arr [*] } " "foo"
check_starts_with " ${ arr [*] } " "bar"
}
function check_str_ends_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_ends_with " ${ string } " "foo"
check_ends_with " ${ string } " "bar"
}
function check_arr_ends_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_ends_with " ${ arr [*] } " "foo"
check_ends_with " ${ arr [*] } " "bar"
}
function main() {
check_commands
check_files
check_dirs
check_vars
check_ints
check_floats
check_bools
check_str_contains
check_arr_contains
check_str_starts_with
check_arr_starts_with
check_str_ends_with
check_arr_ends_with
}
main " ${ @ } "
Show source code in checks #!/usr/bin/env bash
: " ${ LIBBASH_DIR :?LIBBASH_DIR must be set. Please source libbash/init before other libraries. } "
#------------------------------ Global Variables ------------------------------
#------------------------------ Private Functions -----------------------------
#------------------------------ Public Functions ------------------------------
# Check if command exists
function lb_command_exists(){
lb_check_args_num " ${ @ } " 1
command -v " ${ 1 } " & > /dev/null
}
# Check if file exists
function lb_file_exists(){
lb_check_args_num " ${ @ } " 1
[ -f " ${ 1 } " ]
}
# Check is variable is null
function lb_is_null {
lb_check_args_num " ${ @ } " 1
[ -z " ${ 1 } " ]
}
# Checkifdir exists
function lb_dir_exists() {
lb_check_args_num " ${ @ } " 1
[ -d " ${ 1 } " ]
}
function lb_is_int() {
lb_check_args_num " ${ @ } " 1
# https://stackoverflow.com/a/2210386/1061279
[[ " ${ 1 } " = ~ ^-?[ 0 -9] +$ ]]
}
function lb_is_float() {
lb_check_args_num " ${ @ } " 1
# https://stackoverflow.com/a/12643073/1061279
[[ " ${ 1 } " = ~ ^[ +-] ?([ 0 -9] *[ .]) ?[ 0 -9] +$ ]]
}
function lb_is_bool() {
lb_check_args_num " ${ @ } " 1
case ${ 1 } in
"true" | 1 | 0 | "false" ) return 0 ;;
*) return 1 ;;
esac
}
function lb_contains(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == *" ${ 2 } " * ]]
}
function lb_starts_with(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == " ${ 2 } " * ]]
}
function lb_ends_with(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == *" ${ 2 } " ]]
}
lb_is_null var Return 0 if var is null.
Parameters: Name Type Description Default var string The var to check for required
Examples: #!/usr/bin/env bash
# shellcheck source=/dev/null
source ../init
source " ${ LIBBASH_DIR } /checks"
function check_command(){
if lb_command_exists " ${ 1 } " ; then
printf '"%s" command exists\n' " ${ 1 } "
else
printf '"%s" command does not exist\n' " ${ 1 } "
fi
}
function check_file(){
if lb_file_exists " ${ 1 } " ; then
printf '"%s" file exists\n' " ${ 1 } "
else
printf '"%s" file does not exist\n' " ${ 1 } "
fi
}
function check_dir(){
if lb_dir_exists " ${ 1 } " ; then
printf '"%s" dir exists\n' " ${ 1 } "
else
printf '"%s" dir does not exist\n' " ${ 1 } "
fi
}
function check_var(){
if lb_is_null " ${ 1 } " ; then
printf '"%s" var is null\n' "FOO"
else
printf '"%s" var is not null\n' "LIBBASH_DIR"
fi
}
function check_int(){
if lb_is_int " ${ 1 } " ; then
printf '"%s" is an int\n' " ${ 1 } "
else
printf '"%s" is not an int\n' " ${ 1 } "
fi
}
function check_float(){
if lb_is_float " ${ 1 } " ; then
printf '"%s" is a float\n' " ${ 1 } "
else
printf '"%s" is not a float\n' " ${ 1 } "
fi
}
function check_bool(){
if lb_is_bool " ${ 1 } " ; then
printf '"%s" is a bool\n' " ${ 1 } "
else
printf '"%s" is not a bool\n' " ${ 1 } "
fi
}
function check_contain(){
if lb_contains " ${ 1 } " " ${ 2 } " ; then
printf '"%s" contains "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not contain "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_starts_with(){
if lb_starts_with " ${ 1 } " " ${ 2 } " ; then
printf '"%s" starts with "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not start with "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_ends_with(){
if lb_ends_with " ${ 1 } " " ${ 2 } " ; then
printf '"%s" ends with "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not end with "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_commands(){
check_command "foo"
check_command "ls"
}
function check_files(){
check_file " ${ LIBBASH_DIR } /foo"
check_file " ${ LIBBASH_DIR } /README.md"
}
function check_dirs(){
check_dir " ${ LIBBASH_DIR } /foo"
check_dir " ${ LIBBASH_DIR } "
}
function check_vars(){
FOO = ""
check_var " ${ FOO } "
check_var " ${ LIBBASH_DIR } "
}
function check_ints(){
check_int 1
check_int 11
check_int -1
check_int -11
check_int 1 .1
check_int 12 .12
check_int "foo"
}
function check_floats(){
check_float 1
check_float 12
check_float -1
check_float -12
check_float 12 .12
check_float -12.12
check_float .12
check_float 0 .12
check_float -.12
check_float 1 .
check_float "foo"
}
function check_bools(){
check_bool 0
check_bool 1
check_bool 2
check_bool -0
check_bool -1
check_bool true
check_bool TRUE
check_bool false
check_bool FALSE
check_bool "true"
check_bool "false"
check_bool "foo"
check_bool ""
}
function check_str_contains(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_contain " ${ string } " "foo"
check_contain " ${ string } " "bar"
check_contain " ${ string } " "baz"
}
function check_arr_contains(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_contain " ${ arr [*] } " "foo"
check_contain " ${ arr [*] } " "bar"
check_contain " ${ arr [*] } " "baz"
}
function check_str_starts_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_starts_with " ${ string } " "foo"
check_starts_with " ${ string } " "bar"
}
function check_arr_starts_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_starts_with " ${ arr [*] } " "foo"
check_starts_with " ${ arr [*] } " "baz"
}
function check_str_starts_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_starts_with " ${ string } " "foo"
check_starts_with " ${ string } " "bar"
}
function check_arr_starts_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_starts_with " ${ arr [*] } " "foo"
check_starts_with " ${ arr [*] } " "bar"
}
function check_str_ends_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_ends_with " ${ string } " "foo"
check_ends_with " ${ string } " "bar"
}
function check_arr_ends_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_ends_with " ${ arr [*] } " "foo"
check_ends_with " ${ arr [*] } " "bar"
}
function main() {
check_commands
check_files
check_dirs
check_vars
check_ints
check_floats
check_bools
check_str_contains
check_arr_contains
check_str_starts_with
check_arr_starts_with
check_str_ends_with
check_arr_ends_with
}
main " ${ @ } "
Show source code in checks #!/usr/bin/env bash
: " ${ LIBBASH_DIR :?LIBBASH_DIR must be set. Please source libbash/init before other libraries. } "
#------------------------------ Global Variables ------------------------------
#------------------------------ Private Functions -----------------------------
#------------------------------ Public Functions ------------------------------
# Check if command exists
function lb_command_exists(){
lb_check_args_num " ${ @ } " 1
command -v " ${ 1 } " & > /dev/null
}
# Check if file exists
function lb_file_exists(){
lb_check_args_num " ${ @ } " 1
[ -f " ${ 1 } " ]
}
# Check is variable is null
function lb_is_null {
lb_check_args_num " ${ @ } " 1
[ -z " ${ 1 } " ]
}
# Checkifdir exists
function lb_dir_exists() {
lb_check_args_num " ${ @ } " 1
[ -d " ${ 1 } " ]
}
function lb_is_int() {
lb_check_args_num " ${ @ } " 1
# https://stackoverflow.com/a/2210386/1061279
[[ " ${ 1 } " = ~ ^-?[ 0 -9] +$ ]]
}
function lb_is_float() {
lb_check_args_num " ${ @ } " 1
# https://stackoverflow.com/a/12643073/1061279
[[ " ${ 1 } " = ~ ^[ +-] ?([ 0 -9] *[ .]) ?[ 0 -9] +$ ]]
}
function lb_is_bool() {
lb_check_args_num " ${ @ } " 1
case ${ 1 } in
"true" | 1 | 0 | "false" ) return 0 ;;
*) return 1 ;;
esac
}
function lb_contains(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == *" ${ 2 } " * ]]
}
function lb_starts_with(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == " ${ 2 } " * ]]
}
function lb_ends_with(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == *" ${ 2 } " ]]
}
lb_is_int var Return 0 if a var is an integer.
Parameters: Name Type Description Default var string The var to check for required
Examples: #!/usr/bin/env bash
# shellcheck source=/dev/null
source ../init
source " ${ LIBBASH_DIR } /checks"
function check_command(){
if lb_command_exists " ${ 1 } " ; then
printf '"%s" command exists\n' " ${ 1 } "
else
printf '"%s" command does not exist\n' " ${ 1 } "
fi
}
function check_file(){
if lb_file_exists " ${ 1 } " ; then
printf '"%s" file exists\n' " ${ 1 } "
else
printf '"%s" file does not exist\n' " ${ 1 } "
fi
}
function check_dir(){
if lb_dir_exists " ${ 1 } " ; then
printf '"%s" dir exists\n' " ${ 1 } "
else
printf '"%s" dir does not exist\n' " ${ 1 } "
fi
}
function check_var(){
if lb_is_null " ${ 1 } " ; then
printf '"%s" var is null\n' "FOO"
else
printf '"%s" var is not null\n' "LIBBASH_DIR"
fi
}
function check_int(){
if lb_is_int " ${ 1 } " ; then
printf '"%s" is an int\n' " ${ 1 } "
else
printf '"%s" is not an int\n' " ${ 1 } "
fi
}
function check_float(){
if lb_is_float " ${ 1 } " ; then
printf '"%s" is a float\n' " ${ 1 } "
else
printf '"%s" is not a float\n' " ${ 1 } "
fi
}
function check_bool(){
if lb_is_bool " ${ 1 } " ; then
printf '"%s" is a bool\n' " ${ 1 } "
else
printf '"%s" is not a bool\n' " ${ 1 } "
fi
}
function check_contain(){
if lb_contains " ${ 1 } " " ${ 2 } " ; then
printf '"%s" contains "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not contain "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_starts_with(){
if lb_starts_with " ${ 1 } " " ${ 2 } " ; then
printf '"%s" starts with "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not start with "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_ends_with(){
if lb_ends_with " ${ 1 } " " ${ 2 } " ; then
printf '"%s" ends with "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not end with "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_commands(){
check_command "foo"
check_command "ls"
}
function check_files(){
check_file " ${ LIBBASH_DIR } /foo"
check_file " ${ LIBBASH_DIR } /README.md"
}
function check_dirs(){
check_dir " ${ LIBBASH_DIR } /foo"
check_dir " ${ LIBBASH_DIR } "
}
function check_vars(){
FOO = ""
check_var " ${ FOO } "
check_var " ${ LIBBASH_DIR } "
}
function check_ints(){
check_int 1
check_int 11
check_int -1
check_int -11
check_int 1 .1
check_int 12 .12
check_int "foo"
}
function check_floats(){
check_float 1
check_float 12
check_float -1
check_float -12
check_float 12 .12
check_float -12.12
check_float .12
check_float 0 .12
check_float -.12
check_float 1 .
check_float "foo"
}
function check_bools(){
check_bool 0
check_bool 1
check_bool 2
check_bool -0
check_bool -1
check_bool true
check_bool TRUE
check_bool false
check_bool FALSE
check_bool "true"
check_bool "false"
check_bool "foo"
check_bool ""
}
function check_str_contains(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_contain " ${ string } " "foo"
check_contain " ${ string } " "bar"
check_contain " ${ string } " "baz"
}
function check_arr_contains(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_contain " ${ arr [*] } " "foo"
check_contain " ${ arr [*] } " "bar"
check_contain " ${ arr [*] } " "baz"
}
function check_str_starts_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_starts_with " ${ string } " "foo"
check_starts_with " ${ string } " "bar"
}
function check_arr_starts_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_starts_with " ${ arr [*] } " "foo"
check_starts_with " ${ arr [*] } " "baz"
}
function check_str_starts_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_starts_with " ${ string } " "foo"
check_starts_with " ${ string } " "bar"
}
function check_arr_starts_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_starts_with " ${ arr [*] } " "foo"
check_starts_with " ${ arr [*] } " "bar"
}
function check_str_ends_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_ends_with " ${ string } " "foo"
check_ends_with " ${ string } " "bar"
}
function check_arr_ends_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_ends_with " ${ arr [*] } " "foo"
check_ends_with " ${ arr [*] } " "bar"
}
function main() {
check_commands
check_files
check_dirs
check_vars
check_ints
check_floats
check_bools
check_str_contains
check_arr_contains
check_str_starts_with
check_arr_starts_with
check_str_ends_with
check_arr_ends_with
}
main " ${ @ } "
Show source code in checks #!/usr/bin/env bash
: " ${ LIBBASH_DIR :?LIBBASH_DIR must be set. Please source libbash/init before other libraries. } "
#------------------------------ Global Variables ------------------------------
#------------------------------ Private Functions -----------------------------
#------------------------------ Public Functions ------------------------------
# Check if command exists
function lb_command_exists(){
lb_check_args_num " ${ @ } " 1
command -v " ${ 1 } " & > /dev/null
}
# Check if file exists
function lb_file_exists(){
lb_check_args_num " ${ @ } " 1
[ -f " ${ 1 } " ]
}
# Check is variable is null
function lb_is_null {
lb_check_args_num " ${ @ } " 1
[ -z " ${ 1 } " ]
}
# Checkifdir exists
function lb_dir_exists() {
lb_check_args_num " ${ @ } " 1
[ -d " ${ 1 } " ]
}
function lb_is_int() {
lb_check_args_num " ${ @ } " 1
# https://stackoverflow.com/a/2210386/1061279
[[ " ${ 1 } " = ~ ^-?[ 0 -9] +$ ]]
}
function lb_is_float() {
lb_check_args_num " ${ @ } " 1
# https://stackoverflow.com/a/12643073/1061279
[[ " ${ 1 } " = ~ ^[ +-] ?([ 0 -9] *[ .]) ?[ 0 -9] +$ ]]
}
function lb_is_bool() {
lb_check_args_num " ${ @ } " 1
case ${ 1 } in
"true" | 1 | 0 | "false" ) return 0 ;;
*) return 1 ;;
esac
}
function lb_contains(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == *" ${ 2 } " * ]]
}
function lb_starts_with(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == " ${ 2 } " * ]]
}
function lb_ends_with(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == *" ${ 2 } " ]]
}
lb_is_float var Return 0 if a var is a float.
Parameters: Name Type Description Default var string The var to check for required
Examples: #!/usr/bin/env bash
# shellcheck source=/dev/null
source ../init
source " ${ LIBBASH_DIR } /checks"
function check_command(){
if lb_command_exists " ${ 1 } " ; then
printf '"%s" command exists\n' " ${ 1 } "
else
printf '"%s" command does not exist\n' " ${ 1 } "
fi
}
function check_file(){
if lb_file_exists " ${ 1 } " ; then
printf '"%s" file exists\n' " ${ 1 } "
else
printf '"%s" file does not exist\n' " ${ 1 } "
fi
}
function check_dir(){
if lb_dir_exists " ${ 1 } " ; then
printf '"%s" dir exists\n' " ${ 1 } "
else
printf '"%s" dir does not exist\n' " ${ 1 } "
fi
}
function check_var(){
if lb_is_null " ${ 1 } " ; then
printf '"%s" var is null\n' "FOO"
else
printf '"%s" var is not null\n' "LIBBASH_DIR"
fi
}
function check_int(){
if lb_is_int " ${ 1 } " ; then
printf '"%s" is an int\n' " ${ 1 } "
else
printf '"%s" is not an int\n' " ${ 1 } "
fi
}
function check_float(){
if lb_is_float " ${ 1 } " ; then
printf '"%s" is a float\n' " ${ 1 } "
else
printf '"%s" is not a float\n' " ${ 1 } "
fi
}
function check_bool(){
if lb_is_bool " ${ 1 } " ; then
printf '"%s" is a bool\n' " ${ 1 } "
else
printf '"%s" is not a bool\n' " ${ 1 } "
fi
}
function check_contain(){
if lb_contains " ${ 1 } " " ${ 2 } " ; then
printf '"%s" contains "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not contain "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_starts_with(){
if lb_starts_with " ${ 1 } " " ${ 2 } " ; then
printf '"%s" starts with "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not start with "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_ends_with(){
if lb_ends_with " ${ 1 } " " ${ 2 } " ; then
printf '"%s" ends with "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not end with "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_commands(){
check_command "foo"
check_command "ls"
}
function check_files(){
check_file " ${ LIBBASH_DIR } /foo"
check_file " ${ LIBBASH_DIR } /README.md"
}
function check_dirs(){
check_dir " ${ LIBBASH_DIR } /foo"
check_dir " ${ LIBBASH_DIR } "
}
function check_vars(){
FOO = ""
check_var " ${ FOO } "
check_var " ${ LIBBASH_DIR } "
}
function check_ints(){
check_int 1
check_int 11
check_int -1
check_int -11
check_int 1 .1
check_int 12 .12
check_int "foo"
}
function check_floats(){
check_float 1
check_float 12
check_float -1
check_float -12
check_float 12 .12
check_float -12.12
check_float .12
check_float 0 .12
check_float -.12
check_float 1 .
check_float "foo"
}
function check_bools(){
check_bool 0
check_bool 1
check_bool 2
check_bool -0
check_bool -1
check_bool true
check_bool TRUE
check_bool false
check_bool FALSE
check_bool "true"
check_bool "false"
check_bool "foo"
check_bool ""
}
function check_str_contains(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_contain " ${ string } " "foo"
check_contain " ${ string } " "bar"
check_contain " ${ string } " "baz"
}
function check_arr_contains(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_contain " ${ arr [*] } " "foo"
check_contain " ${ arr [*] } " "bar"
check_contain " ${ arr [*] } " "baz"
}
function check_str_starts_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_starts_with " ${ string } " "foo"
check_starts_with " ${ string } " "bar"
}
function check_arr_starts_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_starts_with " ${ arr [*] } " "foo"
check_starts_with " ${ arr [*] } " "baz"
}
function check_str_starts_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_starts_with " ${ string } " "foo"
check_starts_with " ${ string } " "bar"
}
function check_arr_starts_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_starts_with " ${ arr [*] } " "foo"
check_starts_with " ${ arr [*] } " "bar"
}
function check_str_ends_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_ends_with " ${ string } " "foo"
check_ends_with " ${ string } " "bar"
}
function check_arr_ends_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_ends_with " ${ arr [*] } " "foo"
check_ends_with " ${ arr [*] } " "bar"
}
function main() {
check_commands
check_files
check_dirs
check_vars
check_ints
check_floats
check_bools
check_str_contains
check_arr_contains
check_str_starts_with
check_arr_starts_with
check_str_ends_with
check_arr_ends_with
}
main " ${ @ } "
Show source code in checks #!/usr/bin/env bash
: " ${ LIBBASH_DIR :?LIBBASH_DIR must be set. Please source libbash/init before other libraries. } "
#------------------------------ Global Variables ------------------------------
#------------------------------ Private Functions -----------------------------
#------------------------------ Public Functions ------------------------------
# Check if command exists
function lb_command_exists(){
lb_check_args_num " ${ @ } " 1
command -v " ${ 1 } " & > /dev/null
}
# Check if file exists
function lb_file_exists(){
lb_check_args_num " ${ @ } " 1
[ -f " ${ 1 } " ]
}
# Check is variable is null
function lb_is_null {
lb_check_args_num " ${ @ } " 1
[ -z " ${ 1 } " ]
}
# Checkifdir exists
function lb_dir_exists() {
lb_check_args_num " ${ @ } " 1
[ -d " ${ 1 } " ]
}
function lb_is_int() {
lb_check_args_num " ${ @ } " 1
# https://stackoverflow.com/a/2210386/1061279
[[ " ${ 1 } " = ~ ^-?[ 0 -9] +$ ]]
}
function lb_is_float() {
lb_check_args_num " ${ @ } " 1
# https://stackoverflow.com/a/12643073/1061279
[[ " ${ 1 } " = ~ ^[ +-] ?([ 0 -9] *[ .]) ?[ 0 -9] +$ ]]
}
function lb_is_bool() {
lb_check_args_num " ${ @ } " 1
case ${ 1 } in
"true" | 1 | 0 | "false" ) return 0 ;;
*) return 1 ;;
esac
}
function lb_contains(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == *" ${ 2 } " * ]]
}
function lb_starts_with(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == " ${ 2 } " * ]]
}
function lb_ends_with(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == *" ${ 2 } " ]]
}
Note
A decimal point with no leading number, such as 1., returns 1.
lb_is_bool var Return 0 if a var is a boolean.
Parameters: Name Type Description Default var string The var to check for required
Examples: #!/usr/bin/env bash
# shellcheck source=/dev/null
source ../init
source " ${ LIBBASH_DIR } /checks"
function check_command(){
if lb_command_exists " ${ 1 } " ; then
printf '"%s" command exists\n' " ${ 1 } "
else
printf '"%s" command does not exist\n' " ${ 1 } "
fi
}
function check_file(){
if lb_file_exists " ${ 1 } " ; then
printf '"%s" file exists\n' " ${ 1 } "
else
printf '"%s" file does not exist\n' " ${ 1 } "
fi
}
function check_dir(){
if lb_dir_exists " ${ 1 } " ; then
printf '"%s" dir exists\n' " ${ 1 } "
else
printf '"%s" dir does not exist\n' " ${ 1 } "
fi
}
function check_var(){
if lb_is_null " ${ 1 } " ; then
printf '"%s" var is null\n' "FOO"
else
printf '"%s" var is not null\n' "LIBBASH_DIR"
fi
}
function check_int(){
if lb_is_int " ${ 1 } " ; then
printf '"%s" is an int\n' " ${ 1 } "
else
printf '"%s" is not an int\n' " ${ 1 } "
fi
}
function check_float(){
if lb_is_float " ${ 1 } " ; then
printf '"%s" is a float\n' " ${ 1 } "
else
printf '"%s" is not a float\n' " ${ 1 } "
fi
}
function check_bool(){
if lb_is_bool " ${ 1 } " ; then
printf '"%s" is a bool\n' " ${ 1 } "
else
printf '"%s" is not a bool\n' " ${ 1 } "
fi
}
function check_contain(){
if lb_contains " ${ 1 } " " ${ 2 } " ; then
printf '"%s" contains "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not contain "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_starts_with(){
if lb_starts_with " ${ 1 } " " ${ 2 } " ; then
printf '"%s" starts with "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not start with "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_ends_with(){
if lb_ends_with " ${ 1 } " " ${ 2 } " ; then
printf '"%s" ends with "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not end with "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_commands(){
check_command "foo"
check_command "ls"
}
function check_files(){
check_file " ${ LIBBASH_DIR } /foo"
check_file " ${ LIBBASH_DIR } /README.md"
}
function check_dirs(){
check_dir " ${ LIBBASH_DIR } /foo"
check_dir " ${ LIBBASH_DIR } "
}
function check_vars(){
FOO = ""
check_var " ${ FOO } "
check_var " ${ LIBBASH_DIR } "
}
function check_ints(){
check_int 1
check_int 11
check_int -1
check_int -11
check_int 1 .1
check_int 12 .12
check_int "foo"
}
function check_floats(){
check_float 1
check_float 12
check_float -1
check_float -12
check_float 12 .12
check_float -12.12
check_float .12
check_float 0 .12
check_float -.12
check_float 1 .
check_float "foo"
}
function check_bools(){
check_bool 0
check_bool 1
check_bool 2
check_bool -0
check_bool -1
check_bool true
check_bool TRUE
check_bool false
check_bool FALSE
check_bool "true"
check_bool "false"
check_bool "foo"
check_bool ""
}
function check_str_contains(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_contain " ${ string } " "foo"
check_contain " ${ string } " "bar"
check_contain " ${ string } " "baz"
}
function check_arr_contains(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_contain " ${ arr [*] } " "foo"
check_contain " ${ arr [*] } " "bar"
check_contain " ${ arr [*] } " "baz"
}
function check_str_starts_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_starts_with " ${ string } " "foo"
check_starts_with " ${ string } " "bar"
}
function check_arr_starts_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_starts_with " ${ arr [*] } " "foo"
check_starts_with " ${ arr [*] } " "baz"
}
function check_str_starts_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_starts_with " ${ string } " "foo"
check_starts_with " ${ string } " "bar"
}
function check_arr_starts_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_starts_with " ${ arr [*] } " "foo"
check_starts_with " ${ arr [*] } " "bar"
}
function check_str_ends_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_ends_with " ${ string } " "foo"
check_ends_with " ${ string } " "bar"
}
function check_arr_ends_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_ends_with " ${ arr [*] } " "foo"
check_ends_with " ${ arr [*] } " "bar"
}
function main() {
check_commands
check_files
check_dirs
check_vars
check_ints
check_floats
check_bools
check_str_contains
check_arr_contains
check_str_starts_with
check_arr_starts_with
check_str_ends_with
check_arr_ends_with
}
main " ${ @ } "
Show source code in checks #!/usr/bin/env bash
: " ${ LIBBASH_DIR :?LIBBASH_DIR must be set. Please source libbash/init before other libraries. } "
#------------------------------ Global Variables ------------------------------
#------------------------------ Private Functions -----------------------------
#------------------------------ Public Functions ------------------------------
# Check if command exists
function lb_command_exists(){
lb_check_args_num " ${ @ } " 1
command -v " ${ 1 } " & > /dev/null
}
# Check if file exists
function lb_file_exists(){
lb_check_args_num " ${ @ } " 1
[ -f " ${ 1 } " ]
}
# Check is variable is null
function lb_is_null {
lb_check_args_num " ${ @ } " 1
[ -z " ${ 1 } " ]
}
# Checkifdir exists
function lb_dir_exists() {
lb_check_args_num " ${ @ } " 1
[ -d " ${ 1 } " ]
}
function lb_is_int() {
lb_check_args_num " ${ @ } " 1
# https://stackoverflow.com/a/2210386/1061279
[[ " ${ 1 } " = ~ ^-?[ 0 -9] +$ ]]
}
function lb_is_float() {
lb_check_args_num " ${ @ } " 1
# https://stackoverflow.com/a/12643073/1061279
[[ " ${ 1 } " = ~ ^[ +-] ?([ 0 -9] *[ .]) ?[ 0 -9] +$ ]]
}
function lb_is_bool() {
lb_check_args_num " ${ @ } " 1
case ${ 1 } in
"true" | 1 | 0 | "false" ) return 0 ;;
*) return 1 ;;
esac
}
function lb_contains(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == *" ${ 2 } " * ]]
}
function lb_starts_with(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == " ${ 2 } " * ]]
}
function lb_ends_with(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == *" ${ 2 } " ]]
}
Note
1 is returned if the var is blank or upper case (TRUE/FALSE)
lb_contains var substring Return 0 if a var contains substring.
Parameters: Name Type Description Default var string The var to check in for substring required substring string The substring to check for in var required
string Examples: #!/usr/bin/env bash
# shellcheck source=/dev/null
source ../init
source " ${ LIBBASH_DIR } /checks"
function check_command(){
if lb_command_exists " ${ 1 } " ; then
printf '"%s" command exists\n' " ${ 1 } "
else
printf '"%s" command does not exist\n' " ${ 1 } "
fi
}
function check_file(){
if lb_file_exists " ${ 1 } " ; then
printf '"%s" file exists\n' " ${ 1 } "
else
printf '"%s" file does not exist\n' " ${ 1 } "
fi
}
function check_dir(){
if lb_dir_exists " ${ 1 } " ; then
printf '"%s" dir exists\n' " ${ 1 } "
else
printf '"%s" dir does not exist\n' " ${ 1 } "
fi
}
function check_var(){
if lb_is_null " ${ 1 } " ; then
printf '"%s" var is null\n' "FOO"
else
printf '"%s" var is not null\n' "LIBBASH_DIR"
fi
}
function check_int(){
if lb_is_int " ${ 1 } " ; then
printf '"%s" is an int\n' " ${ 1 } "
else
printf '"%s" is not an int\n' " ${ 1 } "
fi
}
function check_float(){
if lb_is_float " ${ 1 } " ; then
printf '"%s" is a float\n' " ${ 1 } "
else
printf '"%s" is not a float\n' " ${ 1 } "
fi
}
function check_bool(){
if lb_is_bool " ${ 1 } " ; then
printf '"%s" is a bool\n' " ${ 1 } "
else
printf '"%s" is not a bool\n' " ${ 1 } "
fi
}
function check_contain(){
if lb_contains " ${ 1 } " " ${ 2 } " ; then
printf '"%s" contains "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not contain "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_starts_with(){
if lb_starts_with " ${ 1 } " " ${ 2 } " ; then
printf '"%s" starts with "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not start with "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_ends_with(){
if lb_ends_with " ${ 1 } " " ${ 2 } " ; then
printf '"%s" ends with "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not end with "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_commands(){
check_command "foo"
check_command "ls"
}
function check_files(){
check_file " ${ LIBBASH_DIR } /foo"
check_file " ${ LIBBASH_DIR } /README.md"
}
function check_dirs(){
check_dir " ${ LIBBASH_DIR } /foo"
check_dir " ${ LIBBASH_DIR } "
}
function check_vars(){
FOO = ""
check_var " ${ FOO } "
check_var " ${ LIBBASH_DIR } "
}
function check_ints(){
check_int 1
check_int 11
check_int -1
check_int -11
check_int 1 .1
check_int 12 .12
check_int "foo"
}
function check_floats(){
check_float 1
check_float 12
check_float -1
check_float -12
check_float 12 .12
check_float -12.12
check_float .12
check_float 0 .12
check_float -.12
check_float 1 .
check_float "foo"
}
function check_bools(){
check_bool 0
check_bool 1
check_bool 2
check_bool -0
check_bool -1
check_bool true
check_bool TRUE
check_bool false
check_bool FALSE
check_bool "true"
check_bool "false"
check_bool "foo"
check_bool ""
}
function check_str_contains(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_contain " ${ string } " "foo"
check_contain " ${ string } " "bar"
check_contain " ${ string } " "baz"
}
function check_arr_contains(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_contain " ${ arr [*] } " "foo"
check_contain " ${ arr [*] } " "bar"
check_contain " ${ arr [*] } " "baz"
}
function check_str_starts_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_starts_with " ${ string } " "foo"
check_starts_with " ${ string } " "bar"
}
function check_arr_starts_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_starts_with " ${ arr [*] } " "foo"
check_starts_with " ${ arr [*] } " "baz"
}
function check_str_starts_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_starts_with " ${ string } " "foo"
check_starts_with " ${ string } " "bar"
}
function check_arr_starts_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_starts_with " ${ arr [*] } " "foo"
check_starts_with " ${ arr [*] } " "bar"
}
function check_str_ends_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_ends_with " ${ string } " "foo"
check_ends_with " ${ string } " "bar"
}
function check_arr_ends_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_ends_with " ${ arr [*] } " "foo"
check_ends_with " ${ arr [*] } " "bar"
}
function main() {
check_commands
check_files
check_dirs
check_vars
check_ints
check_floats
check_bools
check_str_contains
check_arr_contains
check_str_starts_with
check_arr_starts_with
check_str_ends_with
check_arr_ends_with
}
main " ${ @ } "
array Examples: #!/usr/bin/env bash
# shellcheck source=/dev/null
source ../init
source " ${ LIBBASH_DIR } /checks"
function check_command(){
if lb_command_exists " ${ 1 } " ; then
printf '"%s" command exists\n' " ${ 1 } "
else
printf '"%s" command does not exist\n' " ${ 1 } "
fi
}
function check_file(){
if lb_file_exists " ${ 1 } " ; then
printf '"%s" file exists\n' " ${ 1 } "
else
printf '"%s" file does not exist\n' " ${ 1 } "
fi
}
function check_dir(){
if lb_dir_exists " ${ 1 } " ; then
printf '"%s" dir exists\n' " ${ 1 } "
else
printf '"%s" dir does not exist\n' " ${ 1 } "
fi
}
function check_var(){
if lb_is_null " ${ 1 } " ; then
printf '"%s" var is null\n' "FOO"
else
printf '"%s" var is not null\n' "LIBBASH_DIR"
fi
}
function check_int(){
if lb_is_int " ${ 1 } " ; then
printf '"%s" is an int\n' " ${ 1 } "
else
printf '"%s" is not an int\n' " ${ 1 } "
fi
}
function check_float(){
if lb_is_float " ${ 1 } " ; then
printf '"%s" is a float\n' " ${ 1 } "
else
printf '"%s" is not a float\n' " ${ 1 } "
fi
}
function check_bool(){
if lb_is_bool " ${ 1 } " ; then
printf '"%s" is a bool\n' " ${ 1 } "
else
printf '"%s" is not a bool\n' " ${ 1 } "
fi
}
function check_contain(){
if lb_contains " ${ 1 } " " ${ 2 } " ; then
printf '"%s" contains "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not contain "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_starts_with(){
if lb_starts_with " ${ 1 } " " ${ 2 } " ; then
printf '"%s" starts with "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not start with "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_ends_with(){
if lb_ends_with " ${ 1 } " " ${ 2 } " ; then
printf '"%s" ends with "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not end with "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_commands(){
check_command "foo"
check_command "ls"
}
function check_files(){
check_file " ${ LIBBASH_DIR } /foo"
check_file " ${ LIBBASH_DIR } /README.md"
}
function check_dirs(){
check_dir " ${ LIBBASH_DIR } /foo"
check_dir " ${ LIBBASH_DIR } "
}
function check_vars(){
FOO = ""
check_var " ${ FOO } "
check_var " ${ LIBBASH_DIR } "
}
function check_ints(){
check_int 1
check_int 11
check_int -1
check_int -11
check_int 1 .1
check_int 12 .12
check_int "foo"
}
function check_floats(){
check_float 1
check_float 12
check_float -1
check_float -12
check_float 12 .12
check_float -12.12
check_float .12
check_float 0 .12
check_float -.12
check_float 1 .
check_float "foo"
}
function check_bools(){
check_bool 0
check_bool 1
check_bool 2
check_bool -0
check_bool -1
check_bool true
check_bool TRUE
check_bool false
check_bool FALSE
check_bool "true"
check_bool "false"
check_bool "foo"
check_bool ""
}
function check_str_contains(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_contain " ${ string } " "foo"
check_contain " ${ string } " "bar"
check_contain " ${ string } " "baz"
}
function check_arr_contains(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_contain " ${ arr [*] } " "foo"
check_contain " ${ arr [*] } " "bar"
check_contain " ${ arr [*] } " "baz"
}
function check_str_starts_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_starts_with " ${ string } " "foo"
check_starts_with " ${ string } " "bar"
}
function check_arr_starts_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_starts_with " ${ arr [*] } " "foo"
check_starts_with " ${ arr [*] } " "baz"
}
function check_str_starts_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_starts_with " ${ string } " "foo"
check_starts_with " ${ string } " "bar"
}
function check_arr_starts_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_starts_with " ${ arr [*] } " "foo"
check_starts_with " ${ arr [*] } " "bar"
}
function check_str_ends_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_ends_with " ${ string } " "foo"
check_ends_with " ${ string } " "bar"
}
function check_arr_ends_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_ends_with " ${ arr [*] } " "foo"
check_ends_with " ${ arr [*] } " "bar"
}
function main() {
check_commands
check_files
check_dirs
check_vars
check_ints
check_floats
check_bools
check_str_contains
check_arr_contains
check_str_starts_with
check_arr_starts_with
check_str_ends_with
check_arr_ends_with
}
main " ${ @ } "
Show source code in checks #!/usr/bin/env bash
: " ${ LIBBASH_DIR :?LIBBASH_DIR must be set. Please source libbash/init before other libraries. } "
#------------------------------ Global Variables ------------------------------
#------------------------------ Private Functions -----------------------------
#------------------------------ Public Functions ------------------------------
# Check if command exists
function lb_command_exists(){
lb_check_args_num " ${ @ } " 1
command -v " ${ 1 } " & > /dev/null
}
# Check if file exists
function lb_file_exists(){
lb_check_args_num " ${ @ } " 1
[ -f " ${ 1 } " ]
}
# Check is variable is null
function lb_is_null {
lb_check_args_num " ${ @ } " 1
[ -z " ${ 1 } " ]
}
# Checkifdir exists
function lb_dir_exists() {
lb_check_args_num " ${ @ } " 1
[ -d " ${ 1 } " ]
}
function lb_is_int() {
lb_check_args_num " ${ @ } " 1
# https://stackoverflow.com/a/2210386/1061279
[[ " ${ 1 } " = ~ ^-?[ 0 -9] +$ ]]
}
function lb_is_float() {
lb_check_args_num " ${ @ } " 1
# https://stackoverflow.com/a/12643073/1061279
[[ " ${ 1 } " = ~ ^[ +-] ?([ 0 -9] *[ .]) ?[ 0 -9] +$ ]]
}
function lb_is_bool() {
lb_check_args_num " ${ @ } " 1
case ${ 1 } in
"true" | 1 | 0 | "false" ) return 0 ;;
*) return 1 ;;
esac
}
function lb_contains(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == *" ${ 2 } " * ]]
}
function lb_starts_with(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == " ${ 2 } " * ]]
}
function lb_ends_with(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == *" ${ 2 } " ]]
}
Note
var can be both a string or an array. When checking in an array, use the ${arr[*]} parameter expansion.
lb_starts_with var substring Return 0 if a var starts with substring.
Parameters: Name Type Description Default var string The var to check at teh start for substring required substring string The substring to check for at the start of var required
string Examples: #!/usr/bin/env bash
# shellcheck source=/dev/null
source ../init
source " ${ LIBBASH_DIR } /checks"
function check_command(){
if lb_command_exists " ${ 1 } " ; then
printf '"%s" command exists\n' " ${ 1 } "
else
printf '"%s" command does not exist\n' " ${ 1 } "
fi
}
function check_file(){
if lb_file_exists " ${ 1 } " ; then
printf '"%s" file exists\n' " ${ 1 } "
else
printf '"%s" file does not exist\n' " ${ 1 } "
fi
}
function check_dir(){
if lb_dir_exists " ${ 1 } " ; then
printf '"%s" dir exists\n' " ${ 1 } "
else
printf '"%s" dir does not exist\n' " ${ 1 } "
fi
}
function check_var(){
if lb_is_null " ${ 1 } " ; then
printf '"%s" var is null\n' "FOO"
else
printf '"%s" var is not null\n' "LIBBASH_DIR"
fi
}
function check_int(){
if lb_is_int " ${ 1 } " ; then
printf '"%s" is an int\n' " ${ 1 } "
else
printf '"%s" is not an int\n' " ${ 1 } "
fi
}
function check_float(){
if lb_is_float " ${ 1 } " ; then
printf '"%s" is a float\n' " ${ 1 } "
else
printf '"%s" is not a float\n' " ${ 1 } "
fi
}
function check_bool(){
if lb_is_bool " ${ 1 } " ; then
printf '"%s" is a bool\n' " ${ 1 } "
else
printf '"%s" is not a bool\n' " ${ 1 } "
fi
}
function check_contain(){
if lb_contains " ${ 1 } " " ${ 2 } " ; then
printf '"%s" contains "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not contain "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_starts_with(){
if lb_starts_with " ${ 1 } " " ${ 2 } " ; then
printf '"%s" starts with "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not start with "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_ends_with(){
if lb_ends_with " ${ 1 } " " ${ 2 } " ; then
printf '"%s" ends with "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not end with "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_commands(){
check_command "foo"
check_command "ls"
}
function check_files(){
check_file " ${ LIBBASH_DIR } /foo"
check_file " ${ LIBBASH_DIR } /README.md"
}
function check_dirs(){
check_dir " ${ LIBBASH_DIR } /foo"
check_dir " ${ LIBBASH_DIR } "
}
function check_vars(){
FOO = ""
check_var " ${ FOO } "
check_var " ${ LIBBASH_DIR } "
}
function check_ints(){
check_int 1
check_int 11
check_int -1
check_int -11
check_int 1 .1
check_int 12 .12
check_int "foo"
}
function check_floats(){
check_float 1
check_float 12
check_float -1
check_float -12
check_float 12 .12
check_float -12.12
check_float .12
check_float 0 .12
check_float -.12
check_float 1 .
check_float "foo"
}
function check_bools(){
check_bool 0
check_bool 1
check_bool 2
check_bool -0
check_bool -1
check_bool true
check_bool TRUE
check_bool false
check_bool FALSE
check_bool "true"
check_bool "false"
check_bool "foo"
check_bool ""
}
function check_str_contains(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_contain " ${ string } " "foo"
check_contain " ${ string } " "bar"
check_contain " ${ string } " "baz"
}
function check_arr_contains(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_contain " ${ arr [*] } " "foo"
check_contain " ${ arr [*] } " "bar"
check_contain " ${ arr [*] } " "baz"
}
function check_str_starts_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_starts_with " ${ string } " "foo"
check_starts_with " ${ string } " "bar"
}
function check_arr_starts_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_starts_with " ${ arr [*] } " "foo"
check_starts_with " ${ arr [*] } " "baz"
}
function check_str_starts_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_starts_with " ${ string } " "foo"
check_starts_with " ${ string } " "bar"
}
function check_arr_starts_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_starts_with " ${ arr [*] } " "foo"
check_starts_with " ${ arr [*] } " "bar"
}
function check_str_ends_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_ends_with " ${ string } " "foo"
check_ends_with " ${ string } " "bar"
}
function check_arr_ends_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_ends_with " ${ arr [*] } " "foo"
check_ends_with " ${ arr [*] } " "bar"
}
function main() {
check_commands
check_files
check_dirs
check_vars
check_ints
check_floats
check_bools
check_str_contains
check_arr_contains
check_str_starts_with
check_arr_starts_with
check_str_ends_with
check_arr_ends_with
}
main " ${ @ } "
array Examples: #!/usr/bin/env bash
# shellcheck source=/dev/null
source ../init
source " ${ LIBBASH_DIR } /checks"
function check_command(){
if lb_command_exists " ${ 1 } " ; then
printf '"%s" command exists\n' " ${ 1 } "
else
printf '"%s" command does not exist\n' " ${ 1 } "
fi
}
function check_file(){
if lb_file_exists " ${ 1 } " ; then
printf '"%s" file exists\n' " ${ 1 } "
else
printf '"%s" file does not exist\n' " ${ 1 } "
fi
}
function check_dir(){
if lb_dir_exists " ${ 1 } " ; then
printf '"%s" dir exists\n' " ${ 1 } "
else
printf '"%s" dir does not exist\n' " ${ 1 } "
fi
}
function check_var(){
if lb_is_null " ${ 1 } " ; then
printf '"%s" var is null\n' "FOO"
else
printf '"%s" var is not null\n' "LIBBASH_DIR"
fi
}
function check_int(){
if lb_is_int " ${ 1 } " ; then
printf '"%s" is an int\n' " ${ 1 } "
else
printf '"%s" is not an int\n' " ${ 1 } "
fi
}
function check_float(){
if lb_is_float " ${ 1 } " ; then
printf '"%s" is a float\n' " ${ 1 } "
else
printf '"%s" is not a float\n' " ${ 1 } "
fi
}
function check_bool(){
if lb_is_bool " ${ 1 } " ; then
printf '"%s" is a bool\n' " ${ 1 } "
else
printf '"%s" is not a bool\n' " ${ 1 } "
fi
}
function check_contain(){
if lb_contains " ${ 1 } " " ${ 2 } " ; then
printf '"%s" contains "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not contain "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_starts_with(){
if lb_starts_with " ${ 1 } " " ${ 2 } " ; then
printf '"%s" starts with "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not start with "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_ends_with(){
if lb_ends_with " ${ 1 } " " ${ 2 } " ; then
printf '"%s" ends with "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not end with "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_commands(){
check_command "foo"
check_command "ls"
}
function check_files(){
check_file " ${ LIBBASH_DIR } /foo"
check_file " ${ LIBBASH_DIR } /README.md"
}
function check_dirs(){
check_dir " ${ LIBBASH_DIR } /foo"
check_dir " ${ LIBBASH_DIR } "
}
function check_vars(){
FOO = ""
check_var " ${ FOO } "
check_var " ${ LIBBASH_DIR } "
}
function check_ints(){
check_int 1
check_int 11
check_int -1
check_int -11
check_int 1 .1
check_int 12 .12
check_int "foo"
}
function check_floats(){
check_float 1
check_float 12
check_float -1
check_float -12
check_float 12 .12
check_float -12.12
check_float .12
check_float 0 .12
check_float -.12
check_float 1 .
check_float "foo"
}
function check_bools(){
check_bool 0
check_bool 1
check_bool 2
check_bool -0
check_bool -1
check_bool true
check_bool TRUE
check_bool false
check_bool FALSE
check_bool "true"
check_bool "false"
check_bool "foo"
check_bool ""
}
function check_str_contains(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_contain " ${ string } " "foo"
check_contain " ${ string } " "bar"
check_contain " ${ string } " "baz"
}
function check_arr_contains(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_contain " ${ arr [*] } " "foo"
check_contain " ${ arr [*] } " "bar"
check_contain " ${ arr [*] } " "baz"
}
function check_str_starts_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_starts_with " ${ string } " "foo"
check_starts_with " ${ string } " "bar"
}
function check_arr_starts_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_starts_with " ${ arr [*] } " "foo"
check_starts_with " ${ arr [*] } " "baz"
}
function check_str_starts_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_starts_with " ${ string } " "foo"
check_starts_with " ${ string } " "bar"
}
function check_arr_starts_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_starts_with " ${ arr [*] } " "foo"
check_starts_with " ${ arr [*] } " "bar"
}
function check_str_ends_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_ends_with " ${ string } " "foo"
check_ends_with " ${ string } " "bar"
}
function check_arr_ends_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_ends_with " ${ arr [*] } " "foo"
check_ends_with " ${ arr [*] } " "bar"
}
function main() {
check_commands
check_files
check_dirs
check_vars
check_ints
check_floats
check_bools
check_str_contains
check_arr_contains
check_str_starts_with
check_arr_starts_with
check_str_ends_with
check_arr_ends_with
}
main " ${ @ } "
Show source code in checks #!/usr/bin/env bash
: " ${ LIBBASH_DIR :?LIBBASH_DIR must be set. Please source libbash/init before other libraries. } "
#------------------------------ Global Variables ------------------------------
#------------------------------ Private Functions -----------------------------
#------------------------------ Public Functions ------------------------------
# Check if command exists
function lb_command_exists(){
lb_check_args_num " ${ @ } " 1
command -v " ${ 1 } " & > /dev/null
}
# Check if file exists
function lb_file_exists(){
lb_check_args_num " ${ @ } " 1
[ -f " ${ 1 } " ]
}
# Check is variable is null
function lb_is_null {
lb_check_args_num " ${ @ } " 1
[ -z " ${ 1 } " ]
}
# Checkifdir exists
function lb_dir_exists() {
lb_check_args_num " ${ @ } " 1
[ -d " ${ 1 } " ]
}
function lb_is_int() {
lb_check_args_num " ${ @ } " 1
# https://stackoverflow.com/a/2210386/1061279
[[ " ${ 1 } " = ~ ^-?[ 0 -9] +$ ]]
}
function lb_is_float() {
lb_check_args_num " ${ @ } " 1
# https://stackoverflow.com/a/12643073/1061279
[[ " ${ 1 } " = ~ ^[ +-] ?([ 0 -9] *[ .]) ?[ 0 -9] +$ ]]
}
function lb_is_bool() {
lb_check_args_num " ${ @ } " 1
case ${ 1 } in
"true" | 1 | 0 | "false" ) return 0 ;;
*) return 1 ;;
esac
}
function lb_contains(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == *" ${ 2 } " * ]]
}
function lb_starts_with(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == " ${ 2 } " * ]]
}
function lb_ends_with(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == *" ${ 2 } " ]]
}
Note
var can be both a string or an array. When checking in an array, use the ${arr[*]} parameter expansion. If var is an array, the function checks if the first element is substring.
lb_ends_with var substring Return 0 if a var ends with substring.
Parameters: Name Type Description Default var string The var to check the end for substring required substring string The substring to check for at the end of var required
string Examples: #!/usr/bin/env bash
# shellcheck source=/dev/null
source ../init
source " ${ LIBBASH_DIR } /checks"
function check_command(){
if lb_command_exists " ${ 1 } " ; then
printf '"%s" command exists\n' " ${ 1 } "
else
printf '"%s" command does not exist\n' " ${ 1 } "
fi
}
function check_file(){
if lb_file_exists " ${ 1 } " ; then
printf '"%s" file exists\n' " ${ 1 } "
else
printf '"%s" file does not exist\n' " ${ 1 } "
fi
}
function check_dir(){
if lb_dir_exists " ${ 1 } " ; then
printf '"%s" dir exists\n' " ${ 1 } "
else
printf '"%s" dir does not exist\n' " ${ 1 } "
fi
}
function check_var(){
if lb_is_null " ${ 1 } " ; then
printf '"%s" var is null\n' "FOO"
else
printf '"%s" var is not null\n' "LIBBASH_DIR"
fi
}
function check_int(){
if lb_is_int " ${ 1 } " ; then
printf '"%s" is an int\n' " ${ 1 } "
else
printf '"%s" is not an int\n' " ${ 1 } "
fi
}
function check_float(){
if lb_is_float " ${ 1 } " ; then
printf '"%s" is a float\n' " ${ 1 } "
else
printf '"%s" is not a float\n' " ${ 1 } "
fi
}
function check_bool(){
if lb_is_bool " ${ 1 } " ; then
printf '"%s" is a bool\n' " ${ 1 } "
else
printf '"%s" is not a bool\n' " ${ 1 } "
fi
}
function check_contain(){
if lb_contains " ${ 1 } " " ${ 2 } " ; then
printf '"%s" contains "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not contain "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_starts_with(){
if lb_starts_with " ${ 1 } " " ${ 2 } " ; then
printf '"%s" starts with "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not start with "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_ends_with(){
if lb_ends_with " ${ 1 } " " ${ 2 } " ; then
printf '"%s" ends with "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not end with "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_commands(){
check_command "foo"
check_command "ls"
}
function check_files(){
check_file " ${ LIBBASH_DIR } /foo"
check_file " ${ LIBBASH_DIR } /README.md"
}
function check_dirs(){
check_dir " ${ LIBBASH_DIR } /foo"
check_dir " ${ LIBBASH_DIR } "
}
function check_vars(){
FOO = ""
check_var " ${ FOO } "
check_var " ${ LIBBASH_DIR } "
}
function check_ints(){
check_int 1
check_int 11
check_int -1
check_int -11
check_int 1 .1
check_int 12 .12
check_int "foo"
}
function check_floats(){
check_float 1
check_float 12
check_float -1
check_float -12
check_float 12 .12
check_float -12.12
check_float .12
check_float 0 .12
check_float -.12
check_float 1 .
check_float "foo"
}
function check_bools(){
check_bool 0
check_bool 1
check_bool 2
check_bool -0
check_bool -1
check_bool true
check_bool TRUE
check_bool false
check_bool FALSE
check_bool "true"
check_bool "false"
check_bool "foo"
check_bool ""
}
function check_str_contains(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_contain " ${ string } " "foo"
check_contain " ${ string } " "bar"
check_contain " ${ string } " "baz"
}
function check_arr_contains(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_contain " ${ arr [*] } " "foo"
check_contain " ${ arr [*] } " "bar"
check_contain " ${ arr [*] } " "baz"
}
function check_str_starts_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_starts_with " ${ string } " "foo"
check_starts_with " ${ string } " "bar"
}
function check_arr_starts_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_starts_with " ${ arr [*] } " "foo"
check_starts_with " ${ arr [*] } " "baz"
}
function check_str_starts_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_starts_with " ${ string } " "foo"
check_starts_with " ${ string } " "bar"
}
function check_arr_starts_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_starts_with " ${ arr [*] } " "foo"
check_starts_with " ${ arr [*] } " "bar"
}
function check_str_ends_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_ends_with " ${ string } " "foo"
check_ends_with " ${ string } " "bar"
}
function check_arr_ends_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_ends_with " ${ arr [*] } " "foo"
check_ends_with " ${ arr [*] } " "bar"
}
function main() {
check_commands
check_files
check_dirs
check_vars
check_ints
check_floats
check_bools
check_str_contains
check_arr_contains
check_str_starts_with
check_arr_starts_with
check_str_ends_with
check_arr_ends_with
}
main " ${ @ } "
array Examples: #!/usr/bin/env bash
# shellcheck source=/dev/null
source ../init
source " ${ LIBBASH_DIR } /checks"
function check_command(){
if lb_command_exists " ${ 1 } " ; then
printf '"%s" command exists\n' " ${ 1 } "
else
printf '"%s" command does not exist\n' " ${ 1 } "
fi
}
function check_file(){
if lb_file_exists " ${ 1 } " ; then
printf '"%s" file exists\n' " ${ 1 } "
else
printf '"%s" file does not exist\n' " ${ 1 } "
fi
}
function check_dir(){
if lb_dir_exists " ${ 1 } " ; then
printf '"%s" dir exists\n' " ${ 1 } "
else
printf '"%s" dir does not exist\n' " ${ 1 } "
fi
}
function check_var(){
if lb_is_null " ${ 1 } " ; then
printf '"%s" var is null\n' "FOO"
else
printf '"%s" var is not null\n' "LIBBASH_DIR"
fi
}
function check_int(){
if lb_is_int " ${ 1 } " ; then
printf '"%s" is an int\n' " ${ 1 } "
else
printf '"%s" is not an int\n' " ${ 1 } "
fi
}
function check_float(){
if lb_is_float " ${ 1 } " ; then
printf '"%s" is a float\n' " ${ 1 } "
else
printf '"%s" is not a float\n' " ${ 1 } "
fi
}
function check_bool(){
if lb_is_bool " ${ 1 } " ; then
printf '"%s" is a bool\n' " ${ 1 } "
else
printf '"%s" is not a bool\n' " ${ 1 } "
fi
}
function check_contain(){
if lb_contains " ${ 1 } " " ${ 2 } " ; then
printf '"%s" contains "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not contain "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_starts_with(){
if lb_starts_with " ${ 1 } " " ${ 2 } " ; then
printf '"%s" starts with "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not start with "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_ends_with(){
if lb_ends_with " ${ 1 } " " ${ 2 } " ; then
printf '"%s" ends with "%s"\n' " ${ 1 } " " ${ 2 } "
else
printf '"%s" does not end with "%s"\n' " ${ 1 } " " ${ 2 } "
fi
}
function check_commands(){
check_command "foo"
check_command "ls"
}
function check_files(){
check_file " ${ LIBBASH_DIR } /foo"
check_file " ${ LIBBASH_DIR } /README.md"
}
function check_dirs(){
check_dir " ${ LIBBASH_DIR } /foo"
check_dir " ${ LIBBASH_DIR } "
}
function check_vars(){
FOO = ""
check_var " ${ FOO } "
check_var " ${ LIBBASH_DIR } "
}
function check_ints(){
check_int 1
check_int 11
check_int -1
check_int -11
check_int 1 .1
check_int 12 .12
check_int "foo"
}
function check_floats(){
check_float 1
check_float 12
check_float -1
check_float -12
check_float 12 .12
check_float -12.12
check_float .12
check_float 0 .12
check_float -.12
check_float 1 .
check_float "foo"
}
function check_bools(){
check_bool 0
check_bool 1
check_bool 2
check_bool -0
check_bool -1
check_bool true
check_bool TRUE
check_bool false
check_bool FALSE
check_bool "true"
check_bool "false"
check_bool "foo"
check_bool ""
}
function check_str_contains(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_contain " ${ string } " "foo"
check_contain " ${ string } " "bar"
check_contain " ${ string } " "baz"
}
function check_arr_contains(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_contain " ${ arr [*] } " "foo"
check_contain " ${ arr [*] } " "bar"
check_contain " ${ arr [*] } " "baz"
}
function check_str_starts_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_starts_with " ${ string } " "foo"
check_starts_with " ${ string } " "bar"
}
function check_arr_starts_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_starts_with " ${ arr [*] } " "foo"
check_starts_with " ${ arr [*] } " "baz"
}
function check_str_starts_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_starts_with " ${ string } " "foo"
check_starts_with " ${ string } " "bar"
}
function check_arr_starts_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_starts_with " ${ arr [*] } " "foo"
check_starts_with " ${ arr [*] } " "bar"
}
function check_str_ends_with(){
string = "foo bar"
printf "str: %s\n" " ${ string } "
check_ends_with " ${ string } " "foo"
check_ends_with " ${ string } " "bar"
}
function check_arr_ends_with(){
arr =( "foo" "bar" )
printf "arr: %s\n" " ${ arr [*] } "
check_ends_with " ${ arr [*] } " "foo"
check_ends_with " ${ arr [*] } " "bar"
}
function main() {
check_commands
check_files
check_dirs
check_vars
check_ints
check_floats
check_bools
check_str_contains
check_arr_contains
check_str_starts_with
check_arr_starts_with
check_str_ends_with
check_arr_ends_with
}
main " ${ @ } "
Show source code in checks #!/usr/bin/env bash
: " ${ LIBBASH_DIR :?LIBBASH_DIR must be set. Please source libbash/init before other libraries. } "
#------------------------------ Global Variables ------------------------------
#------------------------------ Private Functions -----------------------------
#------------------------------ Public Functions ------------------------------
# Check if command exists
function lb_command_exists(){
lb_check_args_num " ${ @ } " 1
command -v " ${ 1 } " & > /dev/null
}
# Check if file exists
function lb_file_exists(){
lb_check_args_num " ${ @ } " 1
[ -f " ${ 1 } " ]
}
# Check is variable is null
function lb_is_null {
lb_check_args_num " ${ @ } " 1
[ -z " ${ 1 } " ]
}
# Checkifdir exists
function lb_dir_exists() {
lb_check_args_num " ${ @ } " 1
[ -d " ${ 1 } " ]
}
function lb_is_int() {
lb_check_args_num " ${ @ } " 1
# https://stackoverflow.com/a/2210386/1061279
[[ " ${ 1 } " = ~ ^-?[ 0 -9] +$ ]]
}
function lb_is_float() {
lb_check_args_num " ${ @ } " 1
# https://stackoverflow.com/a/12643073/1061279
[[ " ${ 1 } " = ~ ^[ +-] ?([ 0 -9] *[ .]) ?[ 0 -9] +$ ]]
}
function lb_is_bool() {
lb_check_args_num " ${ @ } " 1
case ${ 1 } in
"true" | 1 | 0 | "false" ) return 0 ;;
*) return 1 ;;
esac
}
function lb_contains(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == *" ${ 2 } " * ]]
}
function lb_starts_with(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == " ${ 2 } " * ]]
}
function lb_ends_with(){
lb_check_args_num " ${ @ } " 2
[[ " ${ 1 } " == *" ${ 2 } " ]]
}
Note
var can be both a string or an array. When checking in an array, use the ${arr[*]} parameter expansion. If var is an array, the function checks if the last element is substring.