xztau
@xztau
Я

Почему не работае скрипт?

создал файл path.sh
#!/bin/bash
export LD_LIBRARY_PATH=~/bin/stlink/usr/local/lib/

дал ему права на запуск и запускаю
sh ./path.sh
$LD_LIBRARY_PATH пустая
Если просто вбить в терминале строку export LD_LIBRARY_PATH=~/bin/stlink/usr/local/lib/, то всё работает.
Что я неправильно сделал?
Эта переменная только для сеанса в терминале или пока ПК не выключу?
Можно ли у LD_LIBRARY_PATH записать несколько разных путей?
  • Вопрос задан
  • 529 просмотров
Решения вопроса 3
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Что я неправильно сделал?

Для того что вы хотите нужно не запускать этот скрипт а загружать его в текущий шелл командой source или . :
$ . ./path.sh

Эта переменная только для сеанса в терминале или пока ПК не выключу?

Эта переменная -- для шелла который её выполнил и его потомков. Запуск скрипта порождает новый шелл, который сразу завершается.

Можно ли у LD_LIBRARY_PATH записать несколько разных путей?

Да, через двоеточие.
Ответ написан
Комментировать
CityCat4
@CityCat4
Внимание! Изменился адрес почты!
"Общие" переменные обычно настраивают один раз - в .bashrc или .bash_profile (первый выполняется только при логине, второй - любым шеллом). Установка переменной порождает ее для текущего сеанса и всех порожденных им процессов, как только шелл завершился - все переменные стерлись :)
Чтобы этого не происходило, используют команду export:
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib32/pkgconfig:/usr/lib/pkgconfig:/usr/lib32/pkgconfig; export PKG_CONFIG_PATH

LD_LIBRARY_PATH задается подобным образом. Только крайне не рекомендуется использовать относительные пути - вместо ~ лучше напишите полный путь к домашке
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
Команда export действует только на дочерние процессы, а не на родительские.
А запуская скрипт, вы порождаете дочерний процесс, который при завершении ничего для текущего баша изменить не может.
Пользуйтесь командой source для запуска скрипта, которая выполнит его без fork.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы