The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Пожалуйста!Помогите подкорректировать скрипт!!, !*! Катюшка, 11-Май-13, 00:21  [смотреть все]

Пожааалуйста помогите!Никогда не имела дела с UNIX!!!!!

Задание:
UNIX (bash). Дан файл “filename”. Получить наименьшее и наибольшее значение в столбце с номером n. Имя файла и номер столбца должны передаваться в качестве параметров командной строки. В случае неправильного вызова должна выводиться справка об использовании скрипта.

вот скрипт

#!/bin/bash
a=2
b=$1
c=$2
f=$(cat $b |head -1| awk '{nf=nf+NF} END {print nf}')
if [[ $# -ne "$a" || "$c" -gt "$f" ]]  ; then
echo
echo "Help!"
echo "Количество аргументов командной строки должно быть = $a!"
echo "Второй параметр = номер столбца - не должен превышать максимальное число столбцов"
echo "Первый параметр = имя файла - должен существовать"
echo "It's necessary to write options using space"
echo "License number v.2.5"
exit
fi

d=$(cat $b | awk {' print $'$c' '} | sort -n | head -1)
e=$(cat $b | awk {' print $'$c' '} | sort -n | tail -1)
echo " Минимальное число = $d"
echo " Максимальное число = $e"
exit

  Проблема в том, что если я вызываю скрипт и не ввожу аргументы вообще, мне не выводится справка об использовании скрипта...хотя по идее условие  $# -ne "$a" должно учитывать этот случай...
заранее спасибо!!

  • Пожалуйста!Помогите подкорректировать скрипт!!, !*! x6e6564_, 09:55 , 11-Май-13 (1)

    #!/bin/bash
    a=2
    b=$1
    c=$2
    if [ $# -ne "$a" ] || [ ! -f "$b" ]  ; then
    echo
    echo "Help!"
    echo "Количество аргументов командной строки должно быть = $a!"
    echo "Второй параметр = номер столбца - не должен превышать максимальное число столбцов"
    echo "Первый параметр = имя файла - должен существовать"
    echo "It's necessary to write options using space"
    echo "License number v.2.5"
    exit
    fi

    f=$(cat $b |head -1| awk '{nf=nf+NF} END {print nf}')

    d=$(cat $b | awk {' print $'$c' '} | sort -n | head -1)
    e=$(cat $b | awk {' print $'$c' '} | sort -n | tail -1)
    echo " Минимальное число = $d"
    echo " Максимальное число = $e"
    exit

    скорее всего
    - сперва делать проверку на аргументы и существование файла
    - только потом разбираемся с $f




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру