Bash/Shell script quick cheat sheet
I don't create enough bash scripts to keep in mind everything. You'll find below what I need to get back in business :
How to declare a function :
my_function() {
    mkdir $1
}How to call a function with a condition :
[ $zero -eq 0 ] && { my_function "directoryname" ; }Get the current folder of the current script :
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"Get the dereferenced path (all directory symlinks resolved), do this:
DIR="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"Get the return code of a script :
command param
STATUS_CODE=$?
[ $STATUS_CODE -eq 0 ] && echo "Ok it has worked"
[ $STATUS_CODE -ne 0 ] && echo "Ouch, something bad happened"Just an other way to write this (but you can do things on several lines) :
[ $STATUS_CODE -eq 0 ] && { 
echo "Ok it has worked"
} || {
echo "Ouch, something bad happened"
 }Variable testing :
if [ -z $X ]; then
    echo "the variable X is empty"
fi
[ -s $file_path ] && echo "the file exists and is not empty"Careful : an empty string return true with -s, you should use -z
[ -z $X ] ||  echo "not empty"
[ -z $X ] &&  echo "empty" || echo "not empty"Remove * except file :
rm !(file) 
rm !(file1|file2)For loop
for file in `ls`
do
    echo file
doneIterative loop
for VARIABLE in 1 2 3 4 5 .. N
do
    command1
    command2
    commandN
doneRemove or replace a string
ok = "smting.mp3"
echo ${ok//.mp3} #return "somting"Read a file line by line
while read line
        do
                command "${line}"
        done < file.xtWritten by pmaoui
Related protips
Have a fresh tip? Share with Coderwall community!
Post
Post a tip
Best
 #Shell 
Authors
Sponsored by #native_company# — Learn More
#native_title#
#native_desc#

 
 
 
 
