The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Пожалуйста!Помогите подкорректировать скрипт!!"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Пожалуйста!Помогите подкорректировать скрипт!!"  +/
Сообщение от Катюшка email on 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" должно учитывать этот случай...
заранее спасибо!!

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Пожалуйста!Помогите подкорректировать скрипт!!"  +/
Сообщение от x6e6564_ on 11-Май-13, 09:55 

#!/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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Пожалуйста!Помогите подкорректировать скрипт!!"  +/
Сообщение от Катюшка email on 11-Май-13, 11:07 
Спасибо огромное!!!Все получилось!!!!
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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