У меня есть команда, которую я хотел бы выполнить из сценария оболочки:
LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 steam
Эта команда необходима для выполнения Пара правильно в моей системе. Если я пытаюсь выполнить Пар без этой команды, значок появляется на средстве запуска, затем исчезает снова, оставляя просто процесс, который я должен закончить в системном мониторе.
Если я вырезал и вставил ту команду непосредственно в терминал, она работает отлично. Пар открывается и работает просто великолепно, и терминал находится, там в фоновом режиме давая вывод, пока Пар не закрывается снова.
Если я пытаюсь выполнить ту команду из сценария оболочки, она больше не работает. То же проблематичное поведение обнаруживается.
Интересно, если я вхожу в терминал и тип ./Steam.sh
- который является названием моего сценария - Пар открывается правильно.
Steam.sh расположен в моей домашней папке, и я выполняю все команды от своей домашней папки в терминале, и я дал, выполняют разрешение к Steam.sh. Я также попытался добавить &
в конец команды в сценарии оболочки, но это не помогло.
Какая-либо идея, почему эта команда работает по-другому в зависимости от того, запускается ли она из сценария оболочки или от терминала? Я думал, что сценарии оболочки, как предполагалось, были в основном тем же самым как рабочими командами от терминала.
Поскольку Терминальный интерпретатор по умолчанию Dash
, где Вы запускаете скрипт в Bash
. Bash
вещи функций, что Dash
не делает.
Так или иначе можно зафиксировать Пар как это:
Перед рабочим Паром:
ln -sf /usr/lib/libstdc++.so.6.0.20 ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6
После рабочего Пара:
rm $HOME/.steam/steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6
rm $HOME/.steam/steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6