NAME="TRAW"
echo ${NAME} # => TRAW :This prints the variable value
echo $NAME # => TRAW :This prints the variable value
echo "$NAME" # => TRAW :This prints the variable value
echo '$NAME' # => $NAME : This will print the Exact string not value.
echo "${NAME}!" # => TRAW! :Concatenation of variable value with !
# Note: When declaring variables there should be no spaces between the variable
# name and equal sign and between the equal sign and the variable value.
# this will throw and error
NAME = "TRAW" # => Error (about space)
<aside> 💡 It is crucial to keep in mind that when referencing a variable value, the dollar sign is used, but when referencing the variable to assign a value, the dollar sign is not used.
</aside>
Parameter | Description |
---|---|
$1… $9 | Parameters 1 to 9. |
$0 | Stores the name of the script file or the current shell name. |
$1 | represents the first argument. |
${10} | Positional parameter 10. |
$# | Number of positional parameters |
$* | stores all the arguments. |
$$ | Process id of the current shell. |
$@ | All arguments, starting from first. |
$- | Current options. |
$_ | Last argument of the previous command |
$! | The process ID (PID) of the most recently executed background pipeline (like started with command &) |
$? | Status of the most recently executed foreground-pipeline (exit/return code) |
<aside> 🔗 Learn more about special parameters here:
</aside>
# This is an inline Bash comment.
: '
This is a
Multi-line comment
in bash
If it looks very neat
'
# **Note you can replace the single quoations with**
# **double qoutations**
<aside>
💡 For Multi-line comments use :'
to open and '
to close.
</aside>
#!/usr/bin/env bash
get_username() {
echo "TRAW"
}
# Or using the function keyword
function get_username() {
echo "TRAW"
}
echo "You are $(get_username)"
Example | Description |
---|---|
$ echo {A,B}.txt | output will be A.txt and B.txt |
{A,B} | Same as A B |
{1..5} | Same as 1 2 3 4 5 |
<aside> 🔗 Learn more about brace expansion here:
</aside>
#!/usr/bin/env bash
greet="world World"
echo "$greet!, I'm new here."
# => Hello world! I'm new here.
#Execute the script
$ chmod +x helloworld.sh
$ ./helloworld.sh
# or just
$ bash helloworld.sh
#!/usr/bin/env bash
string="test"
if [[ -z "$string" ]]; then
echo "String is empty"
elif [[ -n "$string" ]]; then
echo "String is not empty"
fi
# => I'm TRAW
echo "I'm $(whoami)"
# Similar to:
echo "I'm `whoami`"
<aside> 🔗 Learn more about command substitution here:
</aside>