diff --git a/ex01/hello_world.sh b/ex01/hello_world.sh new file mode 100755 index 0000000..52015c4 --- /dev/null +++ b/ex01/hello_world.sh @@ -0,0 +1,8 @@ +#!/bin/bash +if [ -z $1 ]; +then + echo "Hello, World!" +else + echo "Hello, $1!" +fi + diff --git a/ex02/README.md b/ex02/README.md index 43cebf7..ff2d38b 100644 --- a/ex02/README.md +++ b/ex02/README.md @@ -11,4 +11,4 @@ Write a script that ..*script operates ONLY FULL WORDS(e.g. FIND, FOLDER, etc) - ..*search is maked in original case only (FILE != file ) + ..*search is made in original case only (FILE != file ) diff --git a/ex02/ex02.sh b/ex02/ex02.sh new file mode 100755 index 0000000..2bccbe0 --- /dev/null +++ b/ex02/ex02.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +for files in "$@" +do + output=$(ls -R | grep $files) + if [[ $? -eq 0 ]] + then + echo $output | tr ' ' '\n' + else + echo the searched PATH is unexisting + fi +done diff --git a/ex03/ex03.sh b/ex03/ex03.sh new file mode 100755 index 0000000..8ad1525 --- /dev/null +++ b/ex03/ex03.sh @@ -0,0 +1,22 @@ +#!/bin/bash + + +if [[ -r $1 ]] +then + arguments=($2 $3 $4) + for arg in ${arguments[*]} + do + echo $arg $(grep -c $arg $1 ) + grep -n $arg $1 | cut -f1 -d":" + + done + exit 0 + else + exit 1 +fi + + + + + + diff --git a/ex04/ex04.sh b/ex04/ex04.sh new file mode 100755 index 0000000..c76caf4 --- /dev/null +++ b/ex04/ex04.sh @@ -0,0 +1,12 @@ +#!/bin/bash + path=$2 + pattern=$1 + if [[ -z $pattern || -z $path ]] + then + exit 1 + else + files=$(find $2) + basename $files + grep -n $pattern $files | cut -f1 -d":" + exit 0 + fi diff --git a/ex04/test_ex04.sh b/ex04/test_ex04.sh index 18e04d5..f843250 100644 --- a/ex04/test_ex04.sh +++ b/ex04/test_ex04.sh @@ -11,14 +11,14 @@ } @test "No args" { - run bash resources/ex04.sh + run bash ex04.sh [ "$status" -eq 1 ] [ "$output" = '' ] } @test "Without first arg" { - run bash grep_all.sh resources/text_2.txt + run bash ex04.sh resources/text_2.txt [ "$status" -eq 1 ] [ "$output" = '' ] diff --git a/ex05/ex05.sh b/ex05/ex05.sh new file mode 100755 index 0000000..54aa1f3 --- /dev/null +++ b/ex05/ex05.sh @@ -0,0 +1,52 @@ +#!/bin/bash + + +if [[ -z $2 ]]; then + echo "0" + exit 0 +fi + +if ! [[ $2 =~ [[:digit:]] ]]; then + echo "Error.." + exit 1 +fi + + +function sum(){ + evenresult=0 + oddresult=0 + for nums in $@ + do + if [[ $(($nums%2)) -eq 0 ]] + then + evenresult=$(($evenresult+$nums)) + else + oddresult=$(($oddresult+$nums)) + fi + done + result=$(($evenresult+$oddresult)) +} + + + +case $1 in + -e) + sum ${@:2} && echo $evenresult + exit 0 + ;; + -o) + sum ${@:2} && echo $oddresult + exit 0 + ;; + -s) + sum ${@:2} && echo $result + exit 0 + ;; + -m) + sum ${@:2} && echo $(( $result / $(($#-1)) )) + exit 0 +esac + echo "Error.." + exit 1 + + diff --git a/ex06/ex06.sh b/ex06/ex06.sh new file mode 100755 index 0000000..a41a4f2 --- /dev/null +++ b/ex06/ex06.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +function map(){ + +for args in ${@:2} + do + eval $1 $args +done + + +} + +map ${@} diff --git a/ex07/ex07.sh b/ex07/ex07.sh new file mode 100755 index 0000000..092f995 --- /dev/null +++ b/ex07/ex07.sh @@ -0,0 +1,10 @@ +#!/bin/bash + + +if [[ -z $1 || $1 -eq '0' ]] +then + exit 1 +else + head -$1 resourses/surnames.txt | grep -v 'Q-Chem' | sed 's/-//;s/.$//' + exit 0 +fi diff --git a/ex07/test_ex07.sh b/ex07/test_ex07.sh index 2980d2a..9f838b8 100755 --- a/ex07/test_ex07.sh +++ b/ex07/test_ex07.sh @@ -21,13 +21,13 @@ } @test "Test on 0 lines returns error" { - run ex07.sh 0 + run bash ex07.sh 0 [ "$status" -eq 1 ] } @test "Test on 2 lines return empty string" { - run ex07.sh 2 + run bash ex07.sh 2 [ "$status" -eq 0 ] [ "$output" = $'' ] diff --git a/ex08/ex08.sh b/ex08/ex08.sh new file mode 100755 index 0000000..ee22d77 --- /dev/null +++ b/ex08/ex08.sh @@ -0,0 +1,23 @@ +#!/bin/bash +nums=( zeroes, ones, twoes, threes, fours, fives, sixs, sevens, eights, nines) + + +if [[ $# -gt 1 || $# -lt 1 ]] +then + echo "Too many(few) arguments" + exit 1 +fi + + + +for i in {0..9} +do + if ! [[ -f $1 ]]; + then + echo "Error.." + exit 1 + fi + arr[$i]=$(grep -o $i $1 | wc -l) + result+=' '${arr[$i]}' '${nums[$i]} +done +echo $result diff --git a/ex08/test_ex08.sh b/ex08/test_ex08.sh index 3ab85ed..b8a97f8 100755 --- a/ex08/test_ex08.sh +++ b/ex08/test_ex08.sh @@ -5,7 +5,7 @@ [ "$status" -eq 0 ] [ "$output" = "10 zeroes, 13 ones, 4 twoes, 7 threes, 3 fours, 3 fives, 0 sixs, 0 sevens, 0 eights, 1 nines" ] - +} @test "Too many arguments" { run bash ex08.sh resources/digitfile.txt digit.txt diff --git a/ex10/ex10.sh b/ex10/ex10.sh new file mode 100755 index 0000000..69b5e85 --- /dev/null +++ b/ex10/ex10.sh @@ -0,0 +1,20 @@ +#!/bin/bash + + + +if [[ -d $1 ]] +then + echo "" + exit 1 +fi + +if [[ -r $1 ]] +then + echo $(awk 'END{print NR}' $1) $1 + if [[ -r $2 ]] + then + echo $(awk 'END{print NR}' $2) $2 + fi + exit 0 +fi + exit 1