author |
authorEmoji |
title |
date |
description |
draft |
hideToc |
enableToc |
enableTocContent |
tocPosition |
tocLevels |
tags |
series |
categories |
image |
Devoalda |
🐺 |
Bash Cheatsheet |
2020-07-06T16:47:03+08:00 |
Simple Bash Cheatsheet |
false |
false |
true |
true |
inner |
|
bash |
linux |
script |
cheetsheet |
|
|
|
|
Introduction
This is a simple bash script cheatsheet.
Variables
Define variables
abc=123
hello=321
qwerty=asdf
Assign output of command to variable
music=$(mpc)
Argument
word=$1
Argument and default value
words=${1-hello} # If variable not set or null, use default.
FOO=${VARIABLE:=default} # If variable not set or null, set it to default.
{{< alert theme="info" dir="ltr" >}}
Ensure no spaces between variable name and value
{{< /alert >}}
View variable content
$ echo $abc
# outputs: 123
$ echo "$(echo "upg")"
# outputs: upg
$ echo '$(echo "upg")'
# outputs: $(echo "upg")
Loops
For loop
for i in {1..5}
do
echo "Hello $i"
done
{START..END..INCREMENT}
for i in {0..10..2}
do
echo "Hello $i"
done
Files
for file in $HOME
do
echo $file
done
While loop
while [ condition ]
do
echo "hello"
done
Infinite while loop
while true
do
echo "hello"
done
{{< alert theme="info" dir="ltr" >}}
Hit CTRL-C to stop the loop
{{< /alert >}}
Read File
#!/usr/bin/env bash
FILE=${1-hello.txt}
while read line
do
# use $line variable to process line
echo $line
done < "$FILE"
If Else Loop
if [ condition ]; then
echo 1
elif [ condition2 ]; then
echo 2
else
echo 3
fi
Conditions
Operator |
Description |
-eq |
Equal |
-lt |
Less than |
-ge |
Greater than |
== |
2 Strings equal |
!= |
2 Strings not equal |
! |
Statement is false |
-d |
Directory is present |
-e |
File is present |
Condition Usage Examples
if [[ "$1" == "bash" && "$2" = "shell" ]]; then
echo "$1 $2"
elif [ "$1" == "bash" ]; then
echo "$1"
elif [ -e "$HOME/hello.txt" ]
echo "File Present"
elif [ ! -d "$HOME/Documents" ]
echo "Directory NOT Present"
else
echo Condition
fi
Case
word=$1
case "$word" in
hello)
echo hello
;;
bye)
echo bye
;;
*)
echo Universal
;;
esac
Functions
function fun(){
echo fun
}
{{< expand "Credits/References" >}}
stackoverflow1
stackoverflow2
{{< /expand >}}