Documente Academic
Documente Profesional
Documente Cultură
Користење аргументи
Користење опции
На пример ако некоја скрипта има три можни опции така што првата (-y) и третата (-
x) се без аргумент, а втората со аргумент (-z), тогаш првиот аргумент на
функцијата getopts би бил "yz:x". Вториот аргумент е привремена променлива во
која се сместува буквата која се обработува во циклусот. Циклусот while се извршува по
еднаш за секоја опција на командната линија. Процедурата opcii.sh:
#!/bin/bash
while getopts xz:y c
do
case $c in
x) XFLAG=true
echo $XFLAG
;;
y) YFLAG=true
echo $YFLAG
;;
z) ZFLAG=true
echo "Argumentot na opcijata –z e : $OPTARG"
;;
*) USAGE="Povikajte ja skriptata so nekoja od opciite x,
y ili z"
echo $USAGE
exit 2
esac
done
student@os:~$ ./opcii.sh
student@os:~$ ./opcii.sh -x
student@os:~$ ./opcii.sh -y
student@os:~$ ./opcii.sh –z test
student@os:~$ ./opcii.sh –xy
student@os:~$ ./opcii.sh –h
Ако се зададе:
student@os:~$ ./opcii.sh -z
Извршување команди
команда &
Секвенцата команда1 && команда2 прво ја извршува команда1. Ако таа заврши со
излезен код 0, тогаш се извршува и команда2, во спротивно не се извршува команда2.
Тоа е еквивалентно со:
if команда1 then
команда2
fi
Пример:
Пример:
#!/bin/bash
for file in * do
if [ !-r $file ] then
echo can\'t find $file
continue
fi
done
Задачи
#!/bin/bash
#!/bin/bash
if [ ! $# = "2" ]
then
echo "Insert 2 directories as arguments"
exit 1
fi
dirFrom="$1"
dirTo="$2"
if [ ! -d $dirFrom ]
then
echo "$dirFrom doesn't exist"
exit 1
fi
if [ ! -d $dirTo ]
then
echo "Making $dirTo"
mkdir $dirTo
fi
for li in $li
do
cp "$dirFrom/$li" "$dirTo"
done
#!/bin/bash
parent=$1
if [ ! -d $parent ]
then
mkdir $parent
else
rm -r $parent
fi
for li in $list
do
dir=`echo $li | sed "s/^.*\.//"`
#echo $dir
if [ ! -d "$parent/$dir" ]
then
echo "Making: $parent/$dir"
mkdir "$parent/$dir"
fi
done
limit=$1
file=$2
if [ ! -f $file ]
then
touch $file
fi
first=1
second=2
echo $first | cat >> $file
echo $second | cat >> $file
ime11
ime21 ime22
#!/bin/bash
function mkdirsrec(){
if [ $1 -eq $4 ]
then
mkdir "$3/$2$4$5"
return
fi
#limit=$1
#name=$2
#parent=$3
#currentDepth=$4
#index=$5
mkdir "$3/$2$4$5"
limit=$1
name=$2