Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1. Să se scrie un shell script care primește 3 numere ca și argumente pe linie de comandă și afișeaza cel mai mare dintre ele.
- if test $# -ne 3
- then
- echo "wrong arguments"
- exit -1
- fi
- a=$1
- b=$2
- c=$3
- if test $a -ge $b && test $a -ge $c
- then
- echo $a
- elif test $b -ge $a && test $b -ge $c
- then
- echo $b
- else
- echo $c
- fi
- 2. Să se scrie un shell script care primește 3 argumente pe linie de comandă: primul și al treilea argument vor reprezenta operanzii, iar al doilea va reprezenta un operator aritmetic. Să se efectueze operația primită și să se afișeze rezultatul.
- if test $# -ne 3
- then
- echo "wrong arguments"
- exit -1
- fi
- #if test "$2" != "+" && test "$2" != "-" && test "$2" != "*" && test "$2" != "/" && test "$2" != "%"
- #then
- # echo "wrong operand"
- # exit -2
- #fi
- a1=$1
- op=$2
- a2=$3
- case "$op" in
- "+") echo `expr $a1 + $a2`;;
- "-") echo `expr $a1 - $a2`;;
- "*") echo $(($a1 * $a2));;
- "/") echo `expr $a1 / $a2`;;
- "%") echo `expr $a1 % $a2`;;
- *) echo "wrong operand";;
- esac
- 3. Să se scrie un shell script care afișează un mesaj personalizat după cum urmează: "<Salut>, <Username>!"
- person=$(whoami)
- time=$(date +"%H")
- if [ $time -ge 6 ] && [ $time -lt 12 ]
- then
- salut="buna dimineata"
- elif [ $time -ge 12 ] && [ $time -lt 18 ]
- then
- salut="buna ziua"
- elif [ $time -ge 18 ] && [ $time -lt 22 ]
- then
- salut="buna seara"
- else
- salut="noapte buna"
- fi
- echo "$salut $person"
- 4. Să se scrie un shell script care primește ca parametru un director și un caracter după forma: set_mode.sh <director> <caracter>. Shell script-ul va scana acel director (recursiv/nerecursiv) și pentru toate fisierele cu extensia .txt va seta dreptul după cum primește ca parametru.
- if [ $# -ne 2 ]
- then
- echo "wrong arguments"
- exit -1
- fi
- dir=$1
- com=$2
- if [ "$com" != "r" ] && [ "$com" != "w" ] && [ "$com" != "x" ]
- then
- echo "wrong permission"
- exit -2
- fi
- #if test -f "$dir"
- #then
- # if [ ${dir: -4} == ".txt" ]
- # then
- # (chmod u=$com $dir)
- # fi
- #fi
- for f in $dir/*.txt; do
- chmod u=$com $f
- done
- 5. Să se scrie un shell script care primește ca parametru un director și un fișier de ieșire după forma: count.sh <director> <output_file>. Shell script-ul va scana acel director și pentru fiecare fișier cu extensia .txt va afla numărul de caractere și va scrie în fișierul de ieșire pe câte o linie numele fișierului urmat de numărul de caractere găsit. La sfârșit, în fișierul de ieșire se va scrie o linie ce va conține numărul total de caractere sub forma "TOTAL <nr caractere>"
- # asta-i varianta cheap, but it works so why not
- if [ $# -ne 2 ]
- then
- echo "wrong arguments"
- exit -1
- fi
- dir=$1
- files=""
- output=$2
- for f in $dir/*.txt; do
- files+=" $f"
- done
- (wc -m $files >> $output)
- # varianta "full"
- if [ $# -ne 2 ]
- then
- echo "wrong arguments"
- exit -1
- fi
- dir=$1
- total=0
- chars=0
- output=$2
- for f in $dir/*.txt; do
- (wc -m $f >> $output)
- chars=$(wc -m <$f)
- total=`expr $total + $chars`
- done
- echo "TOTAL: $total" >> $output
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement