Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: По разному срабатывает команда в терминале и в .sh файле  (Прочитано 831 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Antalis

  • Автор темы
  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
Собственно запускаю игрушку Альфа Центавра (портированную на Linux) Библиотеки там старые нужны, поэтому динамически.
Команда вот:
LD_LIBRARY_PATH=/usr/local/games/smac/Loki_Compat/ /usr/local/games/smac/Loki_Compat/ld-linux.so.2 /usr/local/games/smac/smac.dynamic

Так если из терминала набирать, то работает со звуком. А если в файл запихать, а сам файл запускать, то без звука. Никак не могу понять с чего бы такая разница.
С какой бы стороны начать копать, чтобы разобраться от чего так получается? А то даже не понимаю что именно гуглить.

Оффлайн mazut

  • Забанен
  • Активист
  • *
  • Сообщений: 703
  • да, не заходи ты сюда!
    • Просмотр профиля
Ну, начни с вариаблес
LD_LIBRARY_PATH=
юзеру дай.

Патрикеич.
Под наблюдением.

Оффлайн Antalis

  • Автор темы
  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
А толку? Дело вообще не в динамике. Это просто в данном конкретном случае всплыло. А так запуск просто /usr/local/games/smac/smac приводит к тому же результату. (Ну только из-за не той библиотеки потом игрушка вылетит.) 
В терминале команда приводит к одному результату (есть звук), в скриптовом файле к другому (нет звука).
Мне не ясно в чём вообще разница запуска команды из терминала и запуска скриптового файла с этой командой.

Оффлайн фирэфохэ

  • Старожил
  • *
  • Сообщений: 2169
  • straightedge
    • Просмотр профиля
Покажи всё, что в скрипте.
http://i18.ЗАПРЕЩЁННЫЙ РЕСУРС/big/2011/0325/6d/19eaa72dd24048a6fb0587832c4b096d.gif КДЕ - УГ. Дебиан - недоось.

Оффлайн Antalis

  • Автор темы
  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
#! /bin/bash
LD_LIBRARY_PATH=/usr/local/games/smac/Loki_Compat/  /usr/local/games/smac/Loki_Compat/ld-linux.so.2  /usr/local/games/smac/smac.dynamic

Всё. Больше ничего нет.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Какой-то странный формат...
/usr/local/games/smac/Loki_Compat/ld-linux.so.2 -- это нафига?

Оффлайн RazrFalcon

  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
все что после .so не нужно =/
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн фирэфохэ

  • Старожил
  • *
  • Сообщений: 2169
  • straightedge
    • Просмотр профиля
Как скрипт запускаешь?
http://i18.ЗАПРЕЩЁННЫЙ РЕСУРС/big/2011/0325/6d/19eaa72dd24048a6fb0587832c4b096d.gif КДЕ - УГ. Дебиан - недоось.

Оффлайн Antalis

  • Автор темы
  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
Как это "на фига"? Это ссылка на разделяемую библиотеку. Без неё путь /usr/local/games/smac/Loki_Compat/ не достаточен. => прога не запустится.
Как это "не нужно"? Тут же не просто переменная задаётся, а только для одного запуска smac.dynamic
Т.е. просто прописать LD_LIBRARY_PATH путь, а потом запустить smac не прокатит.

Но суть то не в этом.
Даже если скрипт выглядит так:

#! /bin/bash
/usr/local/games/smac/smac

То эффект разного итога (звук/тишина) не меняется.

А вот как именно запускать скриптовый файл  есть принципиальная разница.
1) В настоящей консоли это дохлый номер. Требования программы к видео там так просто не удовлетворить. Всё понятно и ожидаемо.
2) В терминале гномовском всё ОК. Собственно разницы между запуском скрипта и команды нет. Всё понятно и ожидаемо.
3) Запуск по двойному клику, что при обычном запуске, что при "запустить в терминале" - нет звука. Собственно какого фига?


 

Страница сгенерирована за 0.049 секунд. Запросов: 24.