Autor: | Dariusz Wawrzyniak |
---|---|
Wersja: | 1.0 z dnia 2016.06.14 |
Uruchamianie edytora (np. vi) z zachowaniem porzedniej wersji edytowanego pliku
if [ ! $1 ] then echo "Use: $0 <filename>" exit 2 fi test -f $1 && cp $1 $1.tmp vi $1 if [ -f $1.tmp ] then if cmp -s $1 $1.tmp then rm $1.tmp else mv $1.tmp $1.bak fi fi
Sprawdzanie dostępności kopii plików podanych na liście argumentów linii poleceń
for f do fname=`basename $f` if cmp -s $f ~/arch/$fname then : else test -f $f && echo "Plik $f nie ma kopii w archiwum" fi done
Wysyłanie komunikatu do zalogowanych użytkowników, nie wyszczególnionych na liście w pliku (z pominięciem użytkowników na liście
if [ ! $1 ] then echo "Use: $0 <listofusers>" exit 2 fi for i in `who | cut -f1 -d\ | sort | uniq | comm -23 - $1` do echo "Hej do: $i" done
Wysyłanie komunikatu do zalogowanych użytkowników, wyszczególnionych na liście w pliku
if [ ! $1 ] then echo "Use: $0 <listofusers>" exit 2 fi for i in `who | cut -f1 -d\ | sort | uniq | comm -12 - $1` do echo "Hej do: $i" done
Zliczanie łącznej liczby linii, słów lub znaków odpowiednio dla plików z rozszerzeniem c lub h, txt oraz pozostałych
nlines=0 nwords=0 nchars=0 for i do case $i in *.txt) tmp=`wc -w < $i` nwords=`expr $nwords + $tmp` ;; *.c|*.h) tmp=`wc -l < $i` nlines=`expr $nlines + $tmp` ;; *) tmp=`wc -c < $i` nchars=`expr $nchars + $tmp` ;; esac done echo "Number of lines "$nlines echo "Number of words "$nwords echo "Number of characters "$nchars