Добро пожаловать! Войти Зарегистрироваться

Расширенный

Пример из лекции по shell 17.02.10 г.

Написал zzz 
zzz
Пример из лекции по shell 17.02.10 г.
17 February 2010 20:08
#! /usr/bin/env bash
# Перетягин И.А., 2008

NAME="statistics"

# The comment
print_help()
{
echo ""
echo "USAGE: $NAME [options] DIRECTORY"
echo ""
echo "Options:"
echo " -h displays this information"
echo " -f FILE"
echo " appends output to FILE"
echo " -l LIST"
echo " process only files in the languages specified in LIST."
echo " Available languages are C, C++ and Python."
echo ""
exit $1
}

parse_languages()
{
for i in `echo $1 | tr "A-Z," "a-z "`; do
case $i in
c) res="$res -o -name \"*.h\" -o -name \"*.c\"";;
c++) res="$res -o -name \"*.h\" -o -name \"*.cpp\"";;
python) res="$res -o -name \"*.py\"";;
*) echo "$i is not supported" >&2; exit 2;;
esac
done
res=${res:3}
echo $res
}

args=`getopt -n $NAME -o "f:hl:" -l "file:,help,languages:" -- $@`
#args=`getopt "f:hl:" $@`
echo "getopt"
echo "$args"
echo "$@"
if [ "$?" != "0" ]; then
print_help 1
fi

LANGUAGES="c,c++,python"
for i in $args; do
case $i in
-f|--file) FILE=$2;;
-h|--help) print_help;;
-l|--languages) LANGUAGES=$2;;
--) break;;-l c,python -f LOG ./

esac
shift
done
if [ $# != 1 ]; then
print_help 1
fi

echo "$LANGUAGES"
LANGUAGES=`parse_languages $LANGUAGES`
echo "$LANGUAGES"
res=`bash -c "find $1 $LANGUAGES | xargs wc -l | tail -n 1"`
res=`echo $res | awk '{ print $1; }'`

if [ -z "$FILE" ]; then
echo "$res at `date`"
else
echo "`date +\"%Y%m%dT%H%M%S\"`:$res" >> $FILE
fi

#-name "*.h" -or -name "*.cpp" -name "*.py"

#find | xargs wc -l | tail -n 1 >> ./file
Re: Пример из лекции по shell 17.02.10 г.
17 February 2010 21:09
Можете выложить пожалуйста лекции
zzz
Re: Пример из лекции по shell 17.02.10 г.
18 February 2010 20:08
Выложил.
К сожалению, только зарегистрированные пользователи могут писать в этом форуме.

Авторизоваться на форуме