Модераторы: powerfox, ZeeLax
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Debian 6, шелл, сравнение строк 
V
    Опции темы
KasMP
Дата 14.11.2010, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 586
Регистрация: 8.8.2006

Репутация: нет
Всего: 30



Использую замечательный LiveCD.

При программировании в шелле не могу сравнить строки - результат сравнения всегда положителен.

Код
if [ "aa"=="ab" ]; then echo "yes"; else echo "no"; fi;
Код
if [ "aa"!="ab" ]; then echo "yes"; else echo "no"; fi;
Код
if [ "aa">"ab" ]; then echo "yes"; else echo "no"; fi;
Код
if [ "aa"<"ab" ]; then echo "yes"; else echo "no"; fi;


Во всех случаях выводится "yes". С 'if test "aa"=="ab"', разумеется, аналогичная история.

Была попытка делать даже так:
Код
if (("aa"=="ab")); then echo "yes"; else echo "no"; fi;

В этом случае все работает правильно, но только до тех пор, пока строки состоят из символов латинского алфавита, а мне бы хотелось самые разные строки.

Помогите, пожалуйста smile!!
Меня уже достала эта досадная ошибка или "ошибка" - столько времени на нее угрохано!!!!!
PM MAIL   Вверх
Void
Дата 14.11.2010, 16:56 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 7
Всего: 173



man [
Код
[ "aa" = "aa" ]

Код
[ "aa" != "ab" ]

Лексикографическое сравнение строк есть в bash, но не в стандартном POSIX shell:
Код
[[ "ab" > "aa" ]]

Код
[[ "aa" < "ab" ]]

(( ... )) — вычисление арифметических выражений.


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
KasMP
Дата 14.11.2010, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 586
Регистрация: 8.8.2006

Репутация: нет
Всего: 30



Цитата(Void @  14.11.2010,  16:56 Найти цитируемый пост)
man [

Цитата(Void @  14.11.2010,  16:56 Найти цитируемый пост)
(( ... )) — вычисление арифметических выражений. 

Void, я знаю, что такое "[" (второе имя файла с тем же inode, что и у файла test) и "((...))" smile .

Цитата(Void @  14.11.2010,  16:56 Найти цитируемый пост)
Лексикографическое сравнение строк есть в bash, но не в стандартном POSIX shell:

Спасибо smile .
PM MAIL   Вверх
Void
Дата 14.11.2010, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 7
Всего: 173



Цитата(KasMP @  14.11.2010,  19:02 Найти цитируемый пост)
Void, я знаю, что такое "[" (второе имя файла с тем же inode, что и у файла test) и "((...))"

Тогда непонятно удивление по поводу неработающих операторов — их нет в списке поддерживаемых.


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
KasMP
Дата 14.11.2010, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 586
Регистрация: 8.8.2006

Репутация: нет
Всего: 30



Цитата(Void @  14.11.2010,  17:06 Найти цитируемый пост)
Тогда непонятно удивление по поводу неработающих операторов — их нет в списке поддерживаемых. 

Ну, про не поддержку в одном стандарте и поддержку в другом я не знала (и очень сильно удивлялась!!)... А про арифметические выражения написала для того, чтобы у читающих возникло больше желания помочь - тому, кто что-то попытался сам, всегда хочется помочь больше (и здесь я результату уже нисколько не удивлялась).

P.S.. А есть какой-нибудь эмулятор шелла с его основными стандартными командами под Windows smile ?
PM MAIL   Вверх
kemiisto
Дата 14.11.2010, 17:56 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 9
Всего: 160



Цитата(KasMP @  14.11.2010,  15:12 Найти цитируемый пост)
P.S.. А есть какой-нибудь эмулятор шелла с его основными стандартными командами под Windows smile ? 

http://www.cygwin.com/ ?


--------------------
PM MAIL WWW GTalk Jabber   Вверх
KasMP
Дата 17.11.2010, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 586
Регистрация: 8.8.2006

Репутация: нет
Всего: 30



kemiistosmile .

Судя по описанию,
Цитата(cygwin.com)

What Is Cygwin?

Cygwin is a Linux-like environment for Windows. It consists of two parts:
  •  A DLL (cygwin1.dll) which acts as a Linux API emulation layer providing substantial Linux API functionality.
  •  A collection of tools which provide Linux look and feel.
...

What Isn't Cygwin?
  •  Cygwin is not a way to run native linux apps on Windows. You have to rebuild your application from source if you want it to run on Windows.
  •  Cygwin is not a way to magically make native Windows apps aware of UNIX ® functionality, like signals, ptys, etc. Again, you need to build your apps from source if you want to take advantage of Cygwin functionality. 


это именно то, что нужно smile .
Выбрала рекомендуемый набор пакетов (модулей, частей, или как они правильно называются) для установки, скачала их, установила... Спасибо smile smile .

P.S.. Самое интересное, что когда увидела в твоем посте слово "cygwin", то в памяти моментально воскресло, как сколько-то лет назад я до этого слова докопалась и даже как-то изучала его... Скорее всего, диалаповский интернет тогда тормознул процесс smile. Сейчас вспомнилось только то, что все это связано с UNIX smile smile .
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Oбщие вопросы"
nickless
Imple
nerezus

В тему здесь вопросы общие - не привязанные к определенному ПО или дистрибутиву BSD/Linux/UNIX.
Например вопросы о выборе ОС для определенных задач (но если Вы просто хотите узнать "Какой дистрибутив лучше", то для этого есть Клуб юнуксоидов).
Общие вопросы по shell-программированию тоже лучше задавать здесь.


  • Вопросы мобильной разработки тут
  • Вы должны соблюдать правила форума.
  • Помните: какой вопрос, такой и ответ. Прежде чем задать вопрос прочитайте вот эту статью на форуме CIT.
  • Оскорблять запрещается.
  • Религиозные войны в Религиозных войнах.
  • Общение "просто так" в Клубе юнуксоидов. В отличие от многих других разделов, здесь разрешается сдержанно оффтопить и юморить в тему.

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).


В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.


Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | *NIX системы: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0724 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.