我有一个指向可执行文件的符号链接,该文件如下创建:
$ ln -s /home/x/app/wps_office/wps
如果在命令行中输入:
$ /home/x/app/wps_office/wps
然后,我的应用程序可以正确启动,但是如果我尝试通过符号链接启动应用程序,则会收到以下错误:
$ wps
wps does not exist!
只是为了确保符号链接正确无误;
$ readlink wps
/home/x/app/wps_office/wps
我创建符号链接的位置是文件夹/ home / x / bin,该文件夹包含在我的$ PATH变量中。
我看不到这里出了什么问题,为什么当我使用符号链接时我的应用程序不执行?
快速更新;
我只是快速浏览了符号链接指向的文件的内容,看起来该消息wps does not exist
实际上是来自应用程序的,这意味着符号链接实际上是正确的。我不知道确切的原因,因为我发现奇怪的是,当我不使用符号链接时,一切都可以正常工作。我需要更仔细地查看代码以找出答案。
symlink指向的文件的代码:
#!/bin/bash
gOpt=
gTemplateExt=("wpt" "dot" "dotx")
gBinPath=$(dirname "$0")
if [ -d "${gBinPath}/office6" ]; then
gInstallPath=${gBinPath}
else
gInstallPath=/opt/kingsoft/wps-office
fi
gApp=wps
function parse_arg()
{
if [ $# -eq 1 ] ; then
ext="${1##*.}"
if [ "" = "${ext}" ] ; then
return 0
fi
for i in ${gTemplateExt}
do
if [ "${ext}" = "${i}" ] ; then
gOpt=-t
fi
done
fi
}
function run()
{
oldPwd="${PWD}"
if [ -e "${gInstallPath}/office6/${gApp}" ] ; then
if [ -d /usr/lib32/gtk-2.0 ]; then
export GTK_PATH=/usr/lib32/gtk-2.0
fi
${gInstallPath}/office6/${gApp} ${gOpt} "$@" || ${gBinPath}/wps_error_check.sh ${gInstallPath}/office6/${gApp}
else
echo "${gApp} does not exist!"
fi
}
function main()
{
parse_arg "$@"
run "$@"
}
main "$@"
请注意它说的行echo "${gApp} does not exist!"
,这是我的错误出处。
换线
gInstallPath=/opt/kingsoft/wps-office
在脚本中
gInstallPath=/home/x/app/wps_office
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句