Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / global variables / 7 сообщений из 7, страница 1 из 1
11.11.2010, 10:54
    #36948849
Eras
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
global variables
приветствие всем,

ну никак не пойму куда рыть. почему в init не видно USR и PSW

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
#!/bin/bash
USR=
PSW=
read_psw()
{
cat passwords.tab | while read LINE; do
   USR=`echo "${LINE}" | awk '-F\t' '{print $2}'`
   echo "\$USR in read_psw: $USR"
   PSW=`echo "${LINE}" | awk '-F\t' '{print $3}'`
   echo "\$PSW in read_psw: $PSW"
done
}

init()
{
read_psw
echo "\$USR in init: $USR"
echo "\$PSW in init: $PSW"
}

init

exit  0 

получаем:

Код: plaintext
1.
2.
3.
4.
5.
oracle@eras:~/bin$ ./test.sh
$USR in read_psw: USER01
$PSW in read_psw: PASSWORD01
$USR in init: 
$PSW in init:

спс
...
Рейтинг: 0 / 0
11.11.2010, 11:59
    #36949076
Eras
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
global variables
Eras,

а вот так работает :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
#!/bin/bash
USR=
PSW=
read_psw()
{
#cat passwords.tab | while read LINE; do
for LINE in "`cat passwords.tab`"; do
   USR=`echo "${LINE}" | awk '-F\t' '{print $2}'`
   echo "\$USR in read_psw: $USR"
   PSW=`echo "${LINE}" | awk '-F\t' '{print $3}'`
   echo "\$PSW in read_psw: $PSW"
done
}

init()
{
read_psw
echo "\$USR in init: $USR"
echo "\$PSW in init: $PSW"
}

init

exit  0 
...
Рейтинг: 0 / 0
11.11.2010, 13:01
    #36949267
Андрей Панфилов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
global variables
Eras,

| запускает отдельный shell (subshell), то что вы в нем меняете остается только в нем и наследниках
...
Рейтинг: 0 / 0
11.11.2010, 13:11
    #36949309
Eras
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
global variables
Андрей Панфилов ,

спосибо, буду знать - иду книжку читать
...
Рейтинг: 0 / 0
14.11.2010, 12:39
    #36955298
global variables
Eras,

for LINE in "`cat passwords.tab`"

делает не то, что вы думаете
...
Рейтинг: 0 / 0
15.11.2010, 10:32
    #36956282
Eras
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
global variables
К-рниган и Р-тчи,

телепат ? ну и что же "мы думаем" ?
...
Рейтинг: 0 / 0
15.11.2010, 12:44
    #36956732
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
global variables
Eras, данное выражение вернёт Вам весь файл одной строкой, без разделения на строки и этот цикл будет выполнен один раз.
...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / global variables / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]