Basic Scripting
arguments
| Argument | Meaning |
|---|
| $0 | script file name |
| $1-9 | arguments |
| $# | number of command line arguments passed |
| $@ | list of arguments passed |
| $? | exit status of last process run |
| $$ | PID of script |
| $USER | user executing the script |
| $RANDOM | random number |
#!/bin/bash
# Usage: excludeFromBackup.sh <BACKUP_DIR> <EXCLUDE_FILETYPE>
BACKUP_DIR=$1
EXCLUDE_FILETYPE=$2
tar X <(for i in $BACKUP_DIR/*;
do file $i | grep -i $EXCLUDE_FILETYPE;
if [ $? -eq 0 ];
then echo $i;
fi;
done) -cJf backup.tar.xz $BACKUP_DIR/*
Conditions
if CONDITION; then
COMMANDS;
else
OTHER-COMMANDS
fi
| File Conditions | True IF |
|---|
| -a file | exists |
| -d file | is a directory |
| -f file | is a regular file |
| -u file | SUID (set user ID) bit is set |
| -g file | SGID bit is set |
| -k file | sticky bit is set |
| -r file | is readable |
| -s file | is not empty |
| -w file | is writable |
| -x file | is true if is executable |
| String Conditions | True IF |
|---|
| string1 = string2 | strings are equal |
| string1 != string2 | strings are not equal |
| STRING =~ REGEX | string equals regex |
| Integer Conditions | True IF |
|---|
| -eq | equal |
| -ne | not equal |
| -lt | less than |
| -le | less than or equal |
| -gt | greater than |
| -ge | greater than or equal |
For
for item in SEQUENCE; do
COMMANDS;
done
#!/bin/bash
for port in $(cat ports.txt); do
sudo netstat -lnp | grep -w $port
if [ $? -eq 0 ]; then
echo $port "is [ACTIVE]"
else
echo $port "is [INACTIVE]"
fi
done
While
while EVALUATION_COMMAND; do
EXECUTE_COMMANDS;
done
#!/bin/bash
# Usage: teaTasting.sh -n Name -t Tea -d Date
while getopts ":n:t:d:" arg; do
case $arg in
n) Name=$OPTARG;;
t) Tea=$OPTARG;;
d) Date=$OPTARG;;
esac
done
echo -e "\n$Name $Tea $Date\n"
Edit this page on GitHub