从终端使用导入的库执行vpk_linux32的shell脚本失败

从终端使用导入的库执行vpk_linux32的shell脚本失败,linux,shell,64-bit,Linux,Shell,64 Bit,我正在制作一个shell文件,名为vpk.sh,它将帮助我将文件夹(带有从中复制的代码)转换为,并接受参数;这样使用起来就不会那么困难了。第一个shell文件,即: #!/bin/bash DIR=$(dirname "${BASH_SOURCE[0]}") export LD_LIBRARY_PATH=$(cd "$DIR" && pwd) exec "$DIR/vpk_linux32" "${@}" 用于将其保存在本地目录中,因为当从终端和任何位置执行时,它将与../vpk

我正在制作一个shell文件,名为
vpk.sh
,它将帮助我将文件夹(带有从中复制的代码)转换为,并接受参数;这样使用起来就不会那么困难了。第一个shell文件,即:

#!/bin/bash
DIR=$(dirname "${BASH_SOURCE[0]}")
export LD_LIBRARY_PATH=$(cd "$DIR" && pwd)
exec "$DIR/vpk_linux32" "${@}"
用于将其保存在本地目录中,因为当从终端和任何位置执行时,它将与
../vpk.sh“example.vpk”
命令一起正常工作。唯一的小问题是该文件夹将命名为
example.
而不是
example

这个shell代码是全局的,而不是本地的,我遇到的问题是,我一直试图自己解决这个问题,但没有成功,因为它被保存到
/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}"
但是,当我尝试执行它时,在终端中使用名为
example
(给出
example.vpk
)的vpk文件,如
vpk“example.vpk”
,它将开始将vpk文件提取到一个文件夹中,并提取其内容,但最终只提取它找到的第一个文件,例如
cfg/autoexec.cfg
,但是,如果它是空的,而不是包含内容,则会立即停止,shell会立即输出一个错误:

/usr/local/bin/vpk: line 5:  3071 Segmentation fault      (core dumped) LD_LIBRARY_PATH="${VALVE_LIB_DIR}:${LD_LIBRARY_PATH}" "${VPK_LINUX}" "${1}"
我不确定发生了什么,因为我仍然在学习shell as I code,知道
LD_LIBRARY_PATH
可能是一个无限循环,但是有什么可能使这个文件比它的当前状态工作得更好呢

如果这个问题听起来让人困惑,我很抱歉,因为这是我第一次在这里提问