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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не получается сделать скрипт 
V
    Опции темы
xTr1m
Дата 27.2.2009, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Здравствуйте, пытаюсь сделать скрипт инициализации переменных для JAVA (каждый раз при новом запуске все слетает)
Создаю файл с именем java_init следующего содержания

Код

#!/bin/bash
export JAVA_HOME=....
export PATH=...
export CLASSPATH=..


запускаю этот скрипт командой "sh /usr/local/java/java_init"

Ничего не дает. Причем, если ввести вручную эти команды в консоль, то все заработает. как мне быть?
PM MAIL WWW ICQ   Вверх
bilbobagginz
Дата 27.2.2009, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


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

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



если я понял правильно, хронология событий такова:
1. запускается скрипт так:
Код

sh /usr/local/java/java_init

2. ты ожидаешь, что в окружении для запускаемых процессов изменённые переменные, в последуюшхих 1. командах.
Правильно ?
Тогда: 
Цитата(xTr1m @  27.2.2009,  18:31 Найти цитируемый пост)
как мне быть? 

понять, что всё работает точно как ты попросил систему сделать.

и единственный, кто ожидает чего-то ненормального - это ты. smile

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


надо делать либо:
устанавливать переменные в логин скрипте твоей оболочки, добавив строчки в .bashrc или .bash_profile или .bash_login:
Код

if [ -f /usr/local/java/java_init ]; then
    . /usr/local/java/java_init
fi

либо, создать дополнительный скрипт-оболочку запуска джавы, напр. run_java
и перед вызовом команд java добавить эти 3 строки (выше).

тогда запускаемая java получит (как сын процесса bash, который запускает твой скрипт скрипт)
нужные тебе переменные.






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


Опытный
**


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

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



Код

[guest@station ~]$ cat .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

HISTSIZE=20
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:$HOME/Scripts;
PATH=$PATH:/usr/lib/qt-3.3/bin;
export HISTSIZE PATH;

# Load my variables
. $HOME/.myvars;
[guest@station ~]$ cat .myvars

 # Music folders
MUSIC="$HOME/Music";
ME="$MUSIC/English";
MR="$MUSIC/Russian";
MRAP="$MR/Rap";
MM="$MUSIC/Mounted/Old";
export MUSIC ME MR MRAP MM;

 # Download folders
WGET="$HOME/Downloads/Wget";
PGET="$WGET/get/p";
export WGET PGET;
[guest@station ~]$   

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


Фигасе
****


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

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



Ещё можно юзать
$ source java_init
тогда переменные подхватятся...


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


Опытный
**


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

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



Всем большое спасибо
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0672 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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