Bash cheat sheet: Difference between revisions
Jump to navigation
Jump to search
Line 122: | Line 122: | ||
echo "Add by OpenVPN-Installer Script $DateTime" >> "/etc/sysctl.conf" | echo "Add by OpenVPN-Installer Script $DateTime" >> "/etc/sysctl.conf" | ||
echo "net.ipv4.ip_forward=1" >> "/etc/sysctl.conf" | echo "net.ipv4.ip_forward=1" >> "/etc/sysctl.conf" | ||
fi | |||
=Check if a user exist= | |||
if getent passwd ${ovpnuser} > /dev/null 2>&1; then | |||
echo "User exists ${ovpnuser}" | |||
fi | fi |
Revision as of 21:11, 8 November 2021
Getoptions with flags
while getopts "f" option; do case ${option} in f) flag="1" *) echo "unknown parameter" exit;; esac done
Getoptions with args
while getopts "a:" option; do case ${option} in a) arg="${OPTARG}" *) echo "unknown parameter" exit;; esac done
Condition -OR-
if "$isA" || "$isB"; then do-something fi
- Condition if var is defined
if [ ${var+x} ]; then do-something fi
Print Text
cat << EOF Any ... text ... EOF }
Read tokenized configuration file
. /etc/os-release echo $VERSION_ID
Search in file, return bool
if grep -q search-arg "/etc/file.conf"; then do-something fi
Search and replace
sed -i -r 's/(.*)umask 022(.*)$/\t#Changed\n\tumask 027/gi' /etc/profile
- CRLF within string
scriptmsg+="Hello\n" scriptmsg+="World\n" echo -e $scriptmsg
NL=$'\n' echo -e " Hello${NL}Wolrd"
echo " Hello World "
Code sample of a function call using args and the use of the return code
#!/bin/bash main() { declare test_path='/etc' declare test_file='motd' chkFile "${test_path}/${test_file}" myreturnvalue=$? #echo "myreturnvalue is "$myreturnvalue if [ $myreturnvalue == "1" ] ; then echo "File exist: ${test_path}/${test_file}" else echo "File does NOT exist: ${test_path}/${test_file}" fi } function chkFile(){ if [ -f $1 ]; then #Check for file return 1 else return 0 fi } main "$@"; exit 0
Code sample of a array
- Declare
declare -a array=()
- Add data
array+=("Red") array+=("Blue") array+=("Yellow")
- Enum
# get length of an array arraylength=${#array[@]} # use for loop to read all values and indexes for (( i=0; i<${arraylength}; i++ )); do echo "index: $i, value: ${array[$i]}" done
- Return
index: 0, value: Red index: 1, value: Blue index: 2, value: Yellow
Search in file for string
if ! grep -oP '^\s*net.ipv4.ip_forward=1' "/etc/sysctl.conf"; then echo "Add by OpenVPN-Installer Script $DateTime" >> "/etc/sysctl.conf" echo "net.ipv4.ip_forward=1" >> "/etc/sysctl.conf" fi
Check if a user exist
if getent passwd ${ovpnuser} > /dev/null 2>&1; then echo "User exists ${ovpnuser}" fi