You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.4 KiB
47 lines
1.4 KiB
#!/bin/sh |
|
# To make this script executable, use the command: chmod +x 05_functions.sh |
|
# To run the script, use the command: ./05_functions.sh |
|
echo "This spell will teach you the basics of functions in POSIX-compliant Bash" |
|
echo "To study the code of the examples, please use the command: cat 05_functions.sh" |
|
|
|
# Defining a function |
|
create_potion() { |
|
echo "Creating potion with $1 and $2" |
|
} |
|
|
|
# Calling a function |
|
create_potion "Dragon's blood" "Unicorn hair" |
|
|
|
# Defining a function with return value |
|
calculate_price() { |
|
echo $((10 + 20)) |
|
} |
|
|
|
# Calling a function with return value |
|
price=$(calculate_price) |
|
echo "Price of the potion is $price golds" |
|
|
|
echo "Functions can also be loaded in your .bashrc file to make them available in all terminals." |
|
echo "For example, you can add the following line in your .bashrc file to load the 'hello' function: 'hello() { echo \"Hello, \$1\" }'" |
|
|
|
echo "Creating a function that changes the working directory" |
|
go_to_spell_folder() { |
|
cd ~/spells |
|
pwd |
|
} |
|
|
|
# Return statement |
|
echo "The 'return' statement cause the function to return immediately. The return value can be captured in a variable." |
|
my_function() { |
|
echo "Inside the function" |
|
return 5 |
|
echo "This line will not be executed" |
|
} |
|
|
|
echo "Before calling the function" |
|
result=$(my_function) |
|
echo "The function returned $result" |
|
echo "After calling the function" |
|
|
|
echo "Spell cast successfully" |
|
|
|
|