Bash (Unix shell): Difference between revisions
| (11 intermediate revisions by the same user not shown) | |||
| Line 20: | Line 20: | ||
[https://linuxize.com/post/bash-if-else-statement/ https://linuxize.com/post/bash-if-else-statement/] | [https://linuxize.com/post/bash-if-else-statement/ https://linuxize.com/post/bash-if-else-statement/] | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
if [[ $VAR -gt 10 ]] then | if [[ $VAR -gt 10 ]]; then | ||
echo "The variable is greater than 10." | echo "The variable is greater than 10." | ||
elif [[ $VAR -eq 10 ]] then | elif [[ $VAR -eq 10 ]]; then | ||
echo "The variable is equal to 10." | echo "The variable is equal to 10." | ||
else | else | ||
| Line 30: | Line 30: | ||
[https://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html bash if statements] | [https://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html bash if statements] | ||
;Some common expressions: | |||
<syntaxhighlight lang="bash"> | |||
# File exists and is a regular file. | |||
[ -f $FILE ] | |||
# File is non-zero size | |||
[ -s $FILE ] | |||
# String has length zero | |||
[ -z $STR ] | |||
# String has length non-zero | |||
[ -n $STR ] | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="bash"> | |||
# Check if user is root (https://stackoverflow.com/questions/18215973/how-to-check-if-running-as-root-in-a-bash-script) | |||
if [ "$EUID" -ne 0 ]; then | |||
echo "Please run as root" | |||
exit | |||
fi | |||
</syntaxhighlight> | |||
===Comparisons=== | ===Comparisons=== | ||
| Line 35: | Line 54: | ||
* <code>-gt</code> is <code>></code> | * <code>-gt</code> is <code>></code> | ||
* <code>-ge</code> is <code>>=</code> | * <code>-ge</code> is <code>>=</code> | ||
===Arrays=== | ===Arrays=== | ||
| Line 50: | Line 66: | ||
/media/veracrypt7 | /media/veracrypt7 | ||
/media/veracrypt8 | /media/veracrypt8 | ||
) | ) | ||
# Add to the array | |||
DRIVES+=(/media/veracrypt9) | |||
for i in "${DRIVES[@]}" | for i in "${DRIVES[@]}" | ||
| Line 96: | Line 113: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
trap "exit" INT | trap "exit" INT | ||
</syntaxhighlight> | |||
<syntaxhighlight lang="bash"> | |||
trap 'kill $(jobs -p)' EXIT | |||
</syntaxhighlight> | </syntaxhighlight> | ||
| Line 121: | Line 141: | ||
<code>--</code> explicitly ends non-positional arguments for many commands | <code>--</code> explicitly ends non-positional arguments for many commands | ||
===alias=== | |||
You can add aliases to your <code>.bashrc</code> to make commmon commands shorter. | |||
<syntaxhighlight lang="bash"> | |||
alias kc=kubectl | |||
alias tb="tensorboard --logdir" | |||
</syntaxhighlight> | |||
==dirname== | ==dirname== | ||
| Line 129: | Line 157: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
#!/bin/bash | #!/bin/bash | ||
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" | ||
cd "${DIR}" || exit 1 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
| Line 150: | Line 178: | ||
PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\n\$ ' | PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\n\$ ' | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[[Category:Programming languages]] | |||