http://www.cyberciti.biz/faq/bash-find-out-if-variable-contains-substring/
How do I determine whether a variable called spath=»/srv/www/cyberciti.biz/https» contains a substring called «cyberciti.biz»?
You can use the portable BourneShell syntax as follows:
case "$var" in *pattern1* ) echo "do something #1";; *pattern2* ) echo "do something # 2";; * ) echo "Error...";; esac
Here is a sample code:
#!/bin/bash spath="/srv/www/cyberciti.biz/https" sync_root(){ echo "Running rsync..." rsync -ar $spath/* [email protected]:$spath } case "$spath" in *cyberciti.biz*) sync_root ;; *) echo "Error: Domain does not exits in path.";; esac
Bash Specific Syntax
The following is bash specific syntax and it will not work with BourneShell:
[[ $var = *pattern1* ]]
OR
if [[ $var = *pattern1* ]] then echo "Do something" fi
Here is a sample code:
#!/bin/bash # Wrapper for faq pdf generator # Manually generate pdf files and upload to static nixCraft download server # -- # Get all defaults and functions [[ -f ~/backend/utils/functions.sh ]] && ~/backend/utils/functions.sh _pdfwriter=${_PYTHON_PDF_WRITER:-~/backend/utils/pdfwriter.beta} [[ $# -eq 0 ]] && { echo "Usage: $0 faq-url"; exit 1; } [[ $1 != *cyberciti.biz/faq/* ]] && { printf "Error: Specify faq url (e.g., http://www.cyberciti.biz/faq/url-1-2-3/)\n"; exit 2; } ${_pdfwriter} faq "$1"
Bash v3 and above also supports additional regular expressions. See your local bash man page for more information:
man bash