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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> bash, IFS переменная 
V
    Опции темы
__vadya__
Дата 27.12.2007, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Подскажите плз
Как узнать значение IFS переменной?

я делаю

echo $IFS

и получаю пустую строку( т.е не понятно какой символ перевод строки, пробел, или таб )





PM MAIL   Вверх
bilbobagginz
Дата 27.12.2007, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 113
Всего: 317



значит данная переменная не определена.




--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
__vadya__
Дата 27.12.2007, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Когда делаю


export IFS='\n'


затем 


echo $IFS



в результате пустая строка
PM MAIL   Вверх
GrayCardinal
Дата 27.12.2007, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


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

Репутация: 6
Всего: 58



__vadya__, 
Логично smile


--------------------
PM MAIL WWW   Вверх
__vadya__
Дата 27.12.2007, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



 smile 

вместо '\n' вводил и другие значения,
результат тотже!




PM MAIL   Вверх
Сумасшедший
Дата 27.12.2007, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чилавек-Каропка
***


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

Репутация: 8
Всего: 107



Цитата(__vadya__ @  27.12.2007,  18:27 Найти цитируемый пост)
Когда делаю
export IFS='\n'
затем
echo $IFS
в результате пустая строка

не пустая, а новая)  - сравни сколько строк выведется если сделать как ты выше описал, и сколько, если просто сделать:
echo $ABRAKADARKA
Если тебе нужен именно текст \n - сделай так:
export IFS='\\n'


--------------------
Однажды ты спросишь, а я отвечу: "Время ожидания специалиста - 10 минут". Ты бросишь трубку, так и не узнав, что Ваш звонок очень важен для нас!
PM MAIL WWW Jabber   Вверх
__vadya__
Дата 27.12.2007, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата

Если тебе нужен именно текст \n - сделай так:


Да в том то и дело что пустая строка выводится!
PM MAIL   Вверх
spin2
Дата 27.12.2007, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 15.12.2005
Где: Москва-Одесса

Репутация: 5
Всего: 31



Цитата

19:23:14 s@test:~/$ export mine='\n'
19:23:23 s@test:~/$ echo $mine
\n
19:23:28 s@test:~/$

Red Hat


--------------------
"С кем тяжело молчать, с тем не о чем говорить" (Метерлинк)
блог
Все об ICQ-ботах
PM MAIL WWW ICQ Skype Jabber   Вверх
Сумасшедший
Дата 28.12.2007, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чилавек-Каропка
***


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

Репутация: 8
Всего: 107



buntu; Debian
zsh Всё вроде работает как задумано и проблем не видно:
Код

[8:56]tplarb:~%export IFS='\n'

[8:56]tplarb:~%echo $IFS


[8:56]tplarb:~%export IFS='\\n'
[8:56]tplarb:~%echo $IFS
\n
[8:56]tplarb:~%


А вот с башем - да.. странно себя ведёт:
bash (FreeBSD 6.2, buntu, Debian)
Код

teplik@tplarb:~$ export IFS='\n'
teplik@tplarb:~$ echo $IFS

teplik@tplarb:~$ export IFS='\\n'
teplik@tplarb:~$ echo $IFS

teplik@tplarb:~$ export IFS='qwe'
teplik@tplarb:~$ echo $IFS

teplik@tplarb:~$

В-общем - ничего не экспортит совсем. Вроде бы.
Перезашёл в баш. Попробовал так:
Код

teplik@tplarb:~$ export testvar='testvar mlin'
teplik@tplarb:~$ echo $testvar
    var mlin

Вообще странно. Попробовал ещё пару раз с другими переменными - такая ж ерунда.
Снова перезашёл в баш:
Код

teplik@tplarb:~$ export testvar='testvar mlin'
teplik@tplarb:~$ echo $testvar
testvar mlin

Потыркался с тем же, что и раньше было: в одной из попыток получил такой же результат, как и spin2. Один раз. Больше не получилось=(

Добавлено через 48 секунд
И sed в баше почему-то работает иначе. Но эт уже другой разговор.


--------------------
Однажды ты спросишь, а я отвечу: "Время ожидания специалиста - 10 минут". Ты бросишь трубку, так и не узнав, что Ваш звонок очень важен для нас!
PM MAIL WWW Jabber   Вверх
bilbobagginz
Дата 28.12.2007, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 113
Всего: 317



man bash:
Цитата

 IFS    The Internal Field Separator that is  used  for  word  splitting after  expansion  and  to  split  lines into words with the read builtin  command.   The  default  value  is  ``<space><tab><new-line>''.


man zsh:
Цитата

 IFS <S>
              Internal  field  separators  (by default space, tab, newline and
              NUL), that are used to separate words which result from  command
              or  parameter expansion and words read by the read builtin.  Any
              characters from the set space, tab and newline  that  appear  in
              the IFS are called IFS white space.  One or more IFS white space
              characters or one non-IFS white space  character  together  with
              any  adjacent  IFS white space character delimit a field.  If an
              IFS white space character appears  twice  consecutively  in  the
              IFS,  this  character  is treated as if it were not an IFS white
              space character.







--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
__vadya__
Дата 28.12.2007, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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




Цитата

The  default  value  is  ``<space><tab><new-line>''


А как узнать какой конкретно разделитель задан? smile 

Если есть default, то должна быть возможность установит ь не Default значение!?
PM MAIL   Вверх
bilbobagginz
Дата 28.12.2007, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 113
Всего: 317



Цитата

Если есть default, то должна быть возможность установит ь не Default значение!? 

да, она всегда есть.
надо только установить там, где это не будет переписываться каким-то другим значением.
полистайте ман, посмотрите какие переменные устанавливаются и когда, какие скрипты что изменяют, какие скрипты загружаются под вашим пользователем. только вы сможете это все узнать.





--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.

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


 




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


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

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