Compare commits
2 Commits
930c8e019b
...
d4ae19789d
Author | SHA1 | Date |
---|---|---|
Aminda Suomalainen | d4ae19789d | |
Aminda Suomalainen | d38c727682 |
|
@ -4,6 +4,8 @@
|
|||
*.jpeg
|
||||
# download-forgejo.bash results to these
|
||||
forgejo-*
|
||||
# employees.bash
|
||||
employees.csv
|
||||
# submodule symlinks
|
||||
backup-ops2l-vmc.bash
|
||||
generate-vcard-qr.bash
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Ensure we are given three parameters
|
||||
if [ $# -ne 3 ]; then
|
||||
echo "Please run this script like: ./$0 <operand1> <operator> <operand2>"
|
||||
echo "where operator is either +, -, * or /. You may need to escape or"
|
||||
echo "single quote it."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Store the operands and operator
|
||||
operand1=$1
|
||||
operator=$2
|
||||
operand2=$3
|
||||
|
||||
# The main case/switch which was required in the exercise
|
||||
case $operator in
|
||||
'+')
|
||||
result=$((operand1 + operand2))
|
||||
operatorWord="plus"
|
||||
;;
|
||||
'-')
|
||||
result=$((operand1 - operand2))
|
||||
operatorWord="minus"
|
||||
;;
|
||||
'*')
|
||||
result=$((operand1 * operand2))
|
||||
operatorWord="multiplied by"
|
||||
;;
|
||||
'/')
|
||||
if [ "$operand2" -eq 0 ]; then
|
||||
echo "The laws of mathematics don't allow division by zero."
|
||||
exit 1
|
||||
else
|
||||
result=$((operand1 / operand2))
|
||||
operatorWord="divided by"
|
||||
fi
|
||||
;;
|
||||
# Let's not forget default case either
|
||||
*)
|
||||
echo "Please use operator +, -. * or /"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# and finally the output in format wanted by the task
|
||||
echo "$operand1 $operatorWord $operand2 equals $result"
|
|
@ -0,0 +1,34 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Ensure that the file is empty. -n is specified to avoid \n which would
|
||||
# become obvious in the cat in the end.
|
||||
echo -n '' >employees.csv
|
||||
|
||||
# Begin at 0 so the incrementing later makes the first employee id 1.
|
||||
employees=0
|
||||
|
||||
# While the employee name isn't 0, take names.
|
||||
# neovim again complains about backslash dangling and I will probably never
|
||||
# type read without -r
|
||||
while true; do
|
||||
echo "Enter employee name or 0 to stop: "
|
||||
read -r name
|
||||
|
||||
# stops and breaks out of the loop
|
||||
if [ "$name" = "0" ]; then
|
||||
break
|
||||
fi
|
||||
|
||||
# begin at employee id 1 by incrementing employees from 0
|
||||
employee_id=$((employees + 1))
|
||||
|
||||
# store employee_id and name to employees.csv
|
||||
# I think tsv would be easier and better, but this is what the task requested.
|
||||
echo "$employee_id;$name" >>employees.csv
|
||||
|
||||
# increment employees so the next id will be 2
|
||||
employees=$((employees + 1))
|
||||
done
|
||||
|
||||
# and finally print our document. I stand with tsv being better option.
|
||||
cat employees.csv
|
Loading…
Reference in New Issue