source ./doinit 
:
clear
# day 2, Linux Shell Scripting, we start at 12:00
cd bin/
ls -la
less tarme.sh
vim tarme.s
vim tarit.sh 
echo $PATH
tarit.sh
ls -l
rm bin.2024-01-17.tar.gz
cd ..
ls -l
tarit.sh store
ls -la
rm -rf store.2024-01-17.tar.gz
cl
[[ ]]
[[ -z $var ]]
[[ -z $var ]]; echo $?
echo $var
unset var
echo $var
[[ -z $var ]]; echo $?
var=''; [[ -z $var ]]; echo $?
var='some value'; [[ -z $var ]]; echo $?
var='0'; [[ -z $var ]]; echo $?
var='1'; [[ -z $var ]]; echo $?
vim bin/tarit.sh 
vim bin/tarit.sh 
[[ -z $var ]] && echo it does not exist
[[ ! -z $var ]] && echo it does not exist
cl
# Exercise: Conditionals; back online xx:45
cd bin/
ls -la
cp tarit.sh With bin/tarit.sh:
cp tarit.sh tarit.v1.sh
vim tarit.sh 
cd ..
tarit.sh 
ls -la
rm -r demospace.2024-01-17.tar.gz
tarit.sh 
tarit.sh 
rm -r demospace.2024-01-17.tar.gz 
cl
email='jussi.meikalainen@aalto.fi'
regex='.*@.*'
[[ "$email" =~ $regex ]]; echo $?
email='jussi.meikalainen'
[[ "$email" =~ $regex ]]; echo $?
email='jussi.meikalainen@aalto.fi'
[[ "$email" =~ aalto ]]; echo $?
vim bin/functions 
path="$HOME/demospace/bin"; 
echo $PATH | grep $path
echo $PATH | grep $path >/dev/null; echo $?
vim bin/functions 
email='jussi.meikalainen@aalto.fi'
regex='(.*)@(.*)'
[[ "$email" =~ $regex ]]; echo ${BASH_REMATCH[*]}
echo ${BASH_REMATCH[1]}
echo ${BASH_REMATCH[2]}
cl
vim bin/tarit.sh 
n=2; m=5; ((n+m))
n=2; m=5; echo $((n+m))
n=2; m=5; s=$((n+m)); echgo $s
n=2; m=5; s=$((n+m)); echo $s
n=2; m=5; s=$((m/n)); echo $s
vim bin/read.sh 
read.sh 
read.sh 100000000000
vim bin/read.sh 
read.sh 
read.sh 
read.sh 
vim bin/gauss.sh 
gauss.sh 
gauss.sh 100
gauss.sh 101
vim bin/gauss.sh 
bash -n bin/gauss.sh 
vim bin/gauss.sh 
bash -n bin/gauss.sh 
vim bin/gauss.sh 
cl
vim forexample.sh
chmod +x forexample.sh
./forexample.sh
./forexample.sh 1 2 3
./forexample.sh a b c d
./forexample.sh avvb bdfg crty dyui
vim forexample.sh
vim bin/forsh.sh 
forsh.sh 
bin/forsh.sh 
cd bin/
forsh.sh 
ls -l
vim forsh.sh
echo {1..10}
echo {a..zz}
echo {a..z}
for i in {a..z}; do echo "the item is: $i"; done
for i in aa dd ert yui; do echo "the item is: $i"; done
for i in aa dd ert yui; do echo "the item is: $i"; done > file.forLoop.txt
cat file.forLoop.txt 
cl
vim gauss.realone.sh 
chmod +x gauss.realone.sh 
gauss.realone.sh  100
gauss.realone.sh  100000
time gauss.realone.sh  10000
time gauss.realone.sh  10000000
time gauss.realone.sh  1000000
time gauss.sh  1000000
echo $IFS
echo $IFS | cat -A
cd ..
cl
ls -la
cat students.csv 
cd bin/
ls -la
vim while.sh 
cd ..
ls -la
while.sh # sum of all numbers 1..n; n expected as an argument
n=$1 i=1
until ((i > n)); do   ((s+=i)); ((i++)); done
while.sh  students.csv
less students.csv 
less students.csv 
cat -A <<<"$IFS"
arr=('Otakaari 1' Espoo 02150 [6]='PL 11000')
declare -p arr
printf "%s\n" "${arr[@]}"
echo ${!arr[@]} -- ${arr[@]}
echo $RANDOM
echo $RANDOM
echo $RANDOM
echo $RANDOM
cl
kill %1
