The OpenNET Project / Index page

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

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

"while read fName - эта переменная снаружи не доступна?"  +/
Сообщение от Саша Селянин on 02-Окт-12, 13:31 
Вот пример кода:

#!/bin/bash
while read fName ; do
    filePvmLib="${fName}"
done <<< "$( find /bin -type f -iname "*bash*" 2>/dev/null )"
echo "Дочерняя fName=${fName}; Из родительского пространства filePvmLib=${filePvmLib};"

Две переменные - filePvmLib и fName. После выхода из цикла fName "уничтожается". Как это правильно объяснить?

Если вызывается другой экземпляр Bash. filePvmLib создаётся и существует в "родительском", в "корневом" экземпляре Bash. Внутри цикла fName также доступна, существует для родителя на равне с filePvmLib, а по выходе fName уничтожается.

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

Оглавление

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


1. "while read fName - эта переменная снаружи не доступна?"  +/
Сообщение от Andrey Mitrofanov on 02-Окт-12, 15:28 
> #!/bin/bash
> while read fName ; do
>  filePvmLib="${fName}"
> Как это правильно объяснить?

Зачем это _объяснять_? ... ... Хотя... На!

$ while read fff; do echo "_${fff}_"; xxx=$fff; done < <(echo 1); echo f.$fff x.$xxx
_1_
f. x.1
$ while read fff; do echo "_${fff}_"; xxx=$fff; break; done < <(echo 1); echo f.$fff x.$xxx
_1_
f.1 x.1
$ _

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

2. "while read fName - эта переменная снаружи не доступна?"  +/
Сообщение от Саша Селянин on 02-Окт-12, 23:16 
> Зачем это _объяснять_?

Я по работе использую. Понимать как работают свои инструменты - это правильное стремление. ИМХО.

Если совсем прямо - меня интересует стабильность результата работы этого кода. Интуитивно этот код не вызывает чувства неправильности. Можно придумать, почему логично именно так. Но полезнее(хотелось бы в идеале) таки узнать, что на самом деле.

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

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

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




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

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