Автор Тема: Задаване на PATH обаче във bash скрипт  (Прочетена 3761 пъти)

LinuxFanUNIX

  • Напреднали
  • *****
  • Публикации: 408
  • Distribution: Slackware 12.2
  • Window Manager: KDE 3.5.10
    • Профил
Добър вечер.

Имам следният проблем:
Когато се опитам да си добавя някоя директория към $PATH става без проблем:
Код
GeSHi (Bash):
  1. PATH=/usr/local/bin:$PATH
и всичко си е ок. Обаче като го направя това във Bash script - не става и не става - т.е. PATH си стои същия като преди изпълнението на скрипта. Интересното е обаче че при самото изпълнение на скрипта PATH вече е обновена, обаче след излизането от скрипта - пак си е същата.

Та има ли начин да се зададе PATH през Bash скрипт (без рестарт обаче)...?

Благодаря предварително!
Активен

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Re: Задаване на PATH обаче във bash скрипт
« Отговор #1 -: Jun 06, 2009, 08:19 »
Да, само трябва да изпълниш скрипта така:
. /path/to/script
Активен

0x2B|~0x2B

LinuxFanUNIX

  • Напреднали
  • *****
  • Публикации: 408
  • Distribution: Slackware 12.2
  • Window Manager: KDE 3.5.10
    • Профил
Re: Задаване на PATH обаче във bash скрипт
« Отговор #2 -: Jun 06, 2009, 12:37 »
Да, само трябва да изпълниш скрипта така:
. /path/to/script
Благодаря за отговора. Оправя се, но временно, т.е. като го изпълня под root и всичко е ок, а като обърна към обикновен потребител - той спи, т.е. си кара със стария PATH. После като обърна пак на root, PATH-а вече си е стария (т.е. без промените).

Други идеи?

Благодаря предварително!
Активен

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: Задаване на PATH обаче във bash скрипт
« Отговор #3 -: Jun 06, 2009, 12:44 »
Ми пробва ли да смениш permissions на файла:
Код:
#chmod 755 /path/to/file
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

LinuxFanUNIX

  • Напреднали
  • *****
  • Публикации: 408
  • Distribution: Slackware 12.2
  • Window Manager: KDE 3.5.10
    • Профил
Re: Задаване на PATH обаче във bash скрипт
« Отговор #4 -: Jun 06, 2009, 12:49 »
Ми пробва ли да смениш permissions на файла:
Код:
#chmod 755 /path/to/file
Току-що пробвах, пак не става.  :-[ Всякаш го прави само за текущия отворен терминал, т.е. като отворя нов терминал, независимо с какъв потребител, пак си е както си беше преди това (т.е. без промяна). Някакси го запомня за текущия терминал. И рестарт не помага.

Благодаря все пак!  ;)
Активен

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
Re: Задаване на PATH обаче във bash скрипт
« Отговор #5 -: Jun 06, 2009, 12:56 »
Четете бе, хора, четете!!!!!!

Всяка отделна инстанция на bash си изчита конфигурационните файлове. Ако в тях не е описана въпросната промянва в пътя - тя няма да се случи.

Ако искаш да важи за цялата система - вероятно трябва да го сложиш в /etc/profile.d/mypath.sh и да го направиш изпълним (за последното не съм сигурен). Ако искаш да важи за даден потребител - вероятно трябва да го добавиш в ~/.bashrc или ~/.profile или ~/.bash_profile.
Активен

LinuxFanUNIX

  • Напреднали
  • *****
  • Публикации: 408
  • Distribution: Slackware 12.2
  • Window Manager: KDE 3.5.10
    • Профил
Re: Задаване на PATH обаче във bash скрипт
« Отговор #6 -: Jun 06, 2009, 13:08 »
Четете бе, хора, четете!!!!!!

Всяка отделна инстанция на bash си изчита конфигурационните файлове. Ако в тях не е описана въпросната промянва в пътя - тя няма да се случи.

Ако искаш да важи за цялата система - вероятно трябва да го сложиш в /etc/profile.d/mypath.sh и да го направиш изпълним (за последното не съм сигурен). Ако искаш да важи за даден потребител - вероятно трябва да го добавиш в ~/.bashrc или ~/.profile или ~/.bash_profile.
Да, обаче иска рестарт.  ;)
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: Задаване на PATH обаче във bash скрипт
« Отговор #7 -: Jun 06, 2009, 13:41 »
Да, обаче иска рестарт.  ;)
Не иска рестарт, а само да излезеш от всички конзоли, в които този потребител е влязъл. Но дори и да не излезеш, въведеното в ~/.bashrc ще важи за всяко ново влизане (и нова конзола). Ако единственото, което искаш да се случва, е добавяне на въпросния път, то можеш да добавиш такъв ред в ~/.bashrc за всеки потребител, който искаш да го има сред пътищата си
Цитат
export PATH="/usr/local/bin:$PATH"
Но, ако поради някаква причина, все пак искаш да е в скрипт в отделен файл, можеш да зададеш скрипта така
Цитат
. /път/до/скрипта
Отвори нова конзола и влез с потребителя - ще видиш, че промяната е влязла в сила. Ако искаш да влезе в сила и за обикновения потребител, с който текущо си си пуснал графичната среда, спри графичната среда, излез от този потребител (ако е нужно) и влез отново ;)
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

LinuxFanUNIX

  • Напреднали
  • *****
  • Публикации: 408
  • Distribution: Slackware 12.2
  • Window Manager: KDE 3.5.10
    • Профил
Re: Задаване на PATH обаче във bash скрипт
« Отговор #8 -: Jun 06, 2009, 15:22 »
Да, обаче иска рестарт.  ;)
Не иска рестарт, а само да излезеш от всички конзоли, в които този потребител е влязъл. Но дори и да не излезеш, въведеното в ~/.bashrc ще важи за всяко ново влизане (и нова конзола). Ако единственото, което искаш да се случва, е добавяне на въпросния път, то можеш да добавиш такъв ред в ~/.bashrc за всеки потребител, който искаш да го има сред пътищата си
Цитат
export PATH="/usr/local/bin:$PATH"
Но, ако поради някаква причина, все пак искаш да е в скрипт в отделен файл, можеш да зададеш скрипта така
Цитат
. /път/до/скрипта
Отвори нова конзола и влез с потребителя - ще видиш, че промяната е влязла в сила. Ако искаш да влезе в сила и за обикновения потребител, с който текущо си си пуснал графичната среда, спри графичната среда, излез от този потребител (ако е нужно) и влез отново ;)
Мерси. Благодаря. Имам напредък. Обаче няма ли вариант да важи за всички потребители без да е нужен рестарт на каквото и да е било?
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: Задаване на PATH обаче във bash скрипт
« Отговор #9 -: Jun 06, 2009, 15:38 »
За да промениш текущите настройки на даден потребител, трябва да изпълниш твоя скрипт или реда с export за всеки потребител. Така, тези настройки ще важат за текущо влезлите потребители без да има нужда да излизат. Обаче, за да се запазят за постоянно (т.е., тези настройки да съществуват и при ново влизане на тези потребители), трябва да въведеш настройките в ~/.bashrc файла. Казано още по-кратко - за да влезнат в сила настройките веднага, без да се налага потребителите да излизат, и същевременно с това настройките да се запазят и при ново влизане на потребителите, нужно е да направиш две действия:
1. изпълни скрипта си или export командата за всеки текущо влязъл потребител;
2. въведи скрипта си или export командата в ~/.bashrc файла на всички потребители, за които искаш тази настройка да важи.
От това по-просто и ясно няма накъде.
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
PATH pod OpenBSD 2.9
Хардуерни и софтуерни проблеми
FreeJak 2 3766 Последна публикация May 28, 2002, 08:48
от
$PATH
Настройка на програми
ivanatora 1 2577 Последна публикация Jun 13, 2003, 23:13
от mironcho
path
Настройка на програми
jojopara 1 2429 Последна публикация Feb 02, 2004, 13:04
от nix
PATH?
Настройка на програми
Taifa 7 3809 Последна публикация Dec 10, 2005, 17:14
от
добавяне на променлива в $PATH под дебиан
Настройка на програми
jonythewalker 4 2725 Последна публикация Apr 19, 2010, 22:08
от jonythewalker