nixp.ru v3.0

20 октября 2017,
пятница,
15:45:24 MSK

DevOps с компанией «Флант»
Ekzorcist написал 1 декабря 2006 года в 21:43 (1435 просмотров) Ведет себя неопределенно; открыл 1 тему в форуме, оставил 3 комментария на сайте.

Здравствуйте,уважаемые участники форума!

Обращаюсь к вам с банальной и простой(казалось бы) проблемой.

Мне нужно,используя цикл (while) выполнять одну и ту же часть кода,пока значение одной из строковых переменных не будет равно 'end'

Вот мой скрипт :

=======

#/bin/sh

req=«123»

while [ $req!="666" ]

do

read req

echo «Your input:"$req

done

echo «Congratulations!Is the end of the cycle»

=========

но при вводе '666\′ цикл всё равно продолжает работать.Пробовал использовать различные типы кавычек.Цикл всё равно продолжается.И скрипт требует ввода значения.

Если кому известно,в чём у меня ошибка — дайте знать.Ответив либо в форуме,либо постучаться на Ekzorcist[собака]gmail.com.

Буду благодарен.

Спасибо.

fly4life

while [ $req -ne 666 ]… ну, и далее по тексту.

Советую занести в букмарки:

http://gazette.linux.ru.net/rus/articles/abs-guide/index.html

Ekzorcist

конечно спасибо,но ..«-ne» используется при сравнение чисел,а не строк.

Нас ожидает «integer expression expected»,вестимо.При попытке ввести не числовые значения.

fly4life

Кто, простите, нас ожидает?!

fly4life

Да, если всё-таки настаивать на сравнении именно строк, то слева и справа от знака сравнения должны быть пробелы.

Ekzorcist
fly4life
Кто, простите, нас ожидает?!

«integer expression expected».Сообщение об ошибке выдаваемое интерпретатором.

«ожидается целочисленное значение».

Ekzorcist
fly4life
Да, если всё-таки настаивать на сравнении именно строк, то слева и справа от знака сравнения должны быть пробелы.

Именно сравнение строк и нужно.Изначально.

Спасибо.Ваш совет помог.