Bash
Disable history file saving
Variable expansion
https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html
Default values
File name
fullname="/home/john/temp/file.tar.gz"
directory=${fullname%/*}
/home/john/temp
fname=${fullname##*/}
file.tar.gz
echo ${fname##*.}
gz
echo ${fname%.*}
file.tar
Empty value checking
-z : has zero length
Parameters as array
Arrays
#!/bin/bash
DOMAINS=`cat domains.txt`
HTTP1=""
for domain in $DOMAINS ; do
code=`curl -I $domain 2>/dev/null | grep HTTP | awk '{print $2}'`
if [ ! -z $HTTP1 ];then
HTTP1+="|"
fi
HTTP1+="$domain:$code"
done
echo $HTTP1
IFS='|'
readarray -d '|' ARR <<< $HTTP1
#
arraylength=${#ARR[@]}
for (( i=1; i<${arraylength}+1; i++ ));
do
echo $i ${ARR[$i-1]}
done
Colors
Padding string
for output
for variable
my_var=$(printf %8s aaaa | tr ' ' X); echo $my_var
XXXXaaaa
my_var=$(printf %-8s aaaa | tr ' ' X); echo $my_var
aaaaXXXX
Loop forever
Base path
#!/bin/bash
# set Actual working path
which realpath >/dev/null 2>&1 && BASEPATH=$(realpath $0) || { echo 'ERROR: Utility realpath not found'; exit 1 }
BASEPATH=${BASEPATH%/*}
PS1
in /etc/bash.bashrc