Консультация онлайн # 186091

Раздел: Linux / UNIX
Автор вопроса: Никулин Михаил
Дата: 18.05.2012, 16:30 Консультация неактивна
Поступило ответов: 1
Здравствуйте! У меня возникли сложности, прошу Вас помочь с таким вопросом( если можно, то с комментариями ) :
Задание :

Написать shell-процедуру, которая выполняет действия:
вводит символьную строку;
проверяет введенную строку на несовпадение со строкой, переданной в качестве 1-го параметра;
если строки не совпадают, то выдает на экран приглашение <повторить ввод>;
если совпадают, то сравнивает длину введенной строки с длиной 2-го параметра,
и, в случае их равенства, выводит на экран введенную строку.

Заранее спасибо!

Ответ # 1, Micren (Посетитель)

Здравствуйте, Никулин Михаил!
Код
#!/bin/bash

# Информация об использовании
usage()
{
  echo "Usage: $( basename "$0" ) <string 1> <string 2>" 
  exit 1
}

# Должно быть 2 параметра
if [[ $# -ne 2 ]] ; then
  usage
fi

# Запрос на ввод строки
while true ; do
  read -p "Введите строку: " str 
  [[ "$str". == "$1". ]] && break
done

# Сравнение длин
if [[ ${#str} -eq ${#2} ]] ; then
  echo "$str"
fi

Пример работы:
Код
@linux:~/Projects/186091> ./186091 file lines                                                   
Введите строку: life                                                                               
Введите строку: file
@linux:~/Projects/186091> ./186091 file line
Введите строку: file
file


Micren

Посетитель
18.05.2012, 17:10
5
спасибо!

Мини-форум консультации # 186091

неизвестный

274411

= общий =    19.05.2012, 01:25
спасибо Вам !
Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.