> Доброго времени суток, Господа линуксоиды!
> Требуется помощь по написанию скрипта, задали в универе, сама в них не
> сильна и времени разбираться нет.
> Задание:Написать Shell-скрипт иллюстрирующий работу ветвей и циклов.
> Заранее благодарна за помощь!!!м?
#!/bin/bash
retval=0
FAILMESS=$(echo -ne "\E[31;40m[ FAILED ]"; tput sgr0)
OKMESS=$(echo -ne "\E[36;40m[ OK ]"; tput sgr0)
function errmess {
value=${1}
msg=${2}
if [ ${value} -ne 0 ]; then
echo "${FAILMESS} ${msg}"
else
echo "${OKMESS} ${msg}"
fi
}
function for_cycle {
echo "Proceed FOR cycle:"
for dg in 0 1 2 3 4 5
do
printf "\t${dg}\n"
done
retval=$?
return ${retval}
}
function while_cycle {
echo "Proceed WHILE cycle:"
dg=0
while [ ${dg} -le 5 ]
do
printf "\t${dg}\n"
dg=$((${dg}+1))
done
retval=$?
return ${retval}
}
function until_cycle {
echo "Proceed UNTIL cycle:"
dg=0
while [ ${dg} -ne 6 ]
do
printf "\t${dg}\n"
dg=$((${dg}+1))
done
retval=$?
return ${retval}
}
function rfolder {
dirname="${1}"
if [ -d "${dirname}" ]; then
cd "${dirname}"
for i in $(ls)
do
printf "\t${i}\n"
done
retval=$?
else
echo "${dirname} was not found"
retval=1
fi
return ${retval}
}
function rfile {
filename="${1}"
if [ -e "${filename}" ]; then
while read -r str
do
printf "\t${str}\n"
done < "${filename}"
retval=$?
else
echo "${filename} was not found"
retval=1
fi
return ${retval}
}
case "${1}" in
for)
for_cycle
errmess $? "FOR cycle"
;;
while)
while_cycle
errmess $? "WHILE cycle"
;;
until)
until_cycle
errmess $? "UNTIL cycle"
;;
rfolder)
printf "Specify the folder name: "
read dirname
rfolder "${dirname}"
errmess $? "Reading directory ${dirname}"
;;
rfile)
printf "Specify the file name: "
read filename
rfile "${filename}"
errmess $? "Reading ${filename}"
;;
*)
echo "Usage: $0 {for|while|until|rfolder|rfile}"
retval=1
esac