Сбой сценария оболочки для выполнения vpk_linux32 с импортированными библиотеками из терминала - PullRequest
0 голосов
/ 10 февраля 2019

Я делаю файл оболочки с именем vpk.sh, который поможет мне преобразовать папки (с кодами, скопированными из здесь ) в vpk файл и принятьаргументы;чтобы не было так сложно его использовать.Первый файл оболочки:

#!/bin/bash
DIR=$(dirname "${BASH_SOURCE[0]}")
export LD_LIBRARY_PATH=$(cd "$DIR" && pwd)
exec "$DIR/vpk_linux32" "${@}"

предназначен для его сохранения в локальном каталоге, поскольку он будет правильно работать с командами .../vpk.sh "example.vpk" при выполнении из терминала и из любого места.Единственная незначительная проблема заключается в том, что папка будет иметь имя example. вместо example.

Проблема, с которой я сталкиваюсь с этим шелл-кодом, являющимся глобальным, а не локальным, заключается в том, что я пытаюсьисправить это самому, но безрезультатно, сохранив его в /usr/share/bin/vpk, что означает, что его можно выполнить из любого места в любой момент времени:

#!/bin/bash
VPK_LINUX=$(find "${HOME}/.local/share/Steam" -type f -iname "vpk_linux32" -print | head -n 1)
VALVE_LIB_DIR=$(dirname "${LINUX_VPK}")
LD_LIBRARY_PATH="${VALVE_LIB_DIR}:${LD_LIBRARY_PATH}" "$VPK_LINUX" "${1}"

однако, когда я пытаюсь его выполнить, сфайл vpk с именем example (что дает example.vpk), как vpk "example.vpk" в терминале, он начинает извлекать файл vpk в папку с извлеченным содержимым, но в итоге извлекает только первый найденный файл, напримеркак cfg/autoexec.cfg, но если оно пустое, а не его содержимое, то немедленно прекратите, когда оболочка выдаст ошибку сразу после:

/usr/local/bin/vpk: line 5:  3071 Segmentation fault      (core dumped) LD_LIBRARY_PATH="${VALVE_LIB_DIR}:${LD_LIBRARY_PATH}" "${VPK_LINUX}" "${1}"

Я не уверен, что происходит, так как яЯ все еще изучаю оболочку по мере того, как я пишу код, зная, что LD_LIBRARY_PATH, возможно, бесконечный цикл, но что может заставить этот файл работать намного лучше, чем его текущее состояние?

Я прошу прощения за вопросесли это звучит странно, как я впервые спрашиваю здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...