每次我运行终端时,我都会收到此错误消息“ .bashrc语法错误:文件意外结束”
因此,我开始评论其中的一部分以了解问题,并且我认为它在下面的条件下。我想知道如何编辑它才能正常工作吗?
if ("1" == "$?LD_LIBRARY_PATH") then
if ("$LD_LIBRARY_PATH" !~ */usr/local/iscir/lib*) then
export LD_LIBRARY_PATH /usr/local/iscir/lib:$LD_LIBRARY_PATH
endif
else
export LD_LIBRARY_PATH /usr/local/iscir/lib
endif
我尝试了这个但没有像
if ["1" == "$?LD_LIBRARY_PATH"]; then
if ["$LD_LIBRARY_PATH" !~ */usr/local/iscir/lib*]; then
export LD_LIBRARY_PATH /usr/local/iscir/lib:$LD_LIBRARY_PATH
fi
else
export LD_LIBRARY_PATH /usr/local/iscir/lib
fi
扑朔迷离中没有endif
。一种if
说法是由一个结束fi
。另外,在使用[ ]
测试结构时,您需要在周围有一个空格[
。在=~
正则表达式匹配运算,需要bash的特殊[[ ]]
而不是POSIX [ ]
,并否定了比赛,你否定整个测试([[ ! foo ~ bar ]]
),则不能使用!~
。而且,它需要一个正则表达式,而不是一个外壳程序。因此*
,它本身并不意味着任何东西,您需要.*
“任何字符”。然后,设置和导出变量的格式export foo=bar
,也,你有一个流浪?
的之间$
和LD_LIBRARY_PATH
。因此,请尝试以下操作:
if [ "1" == "$LD_LIBRARY_PATH" ]; then
if [[ ! "$LD_LIBRARY_PATH" =~ .*/usr/local/iscir/lib.* ]]; then
export LD_LIBRARY_PATH="/usr/local/iscir/lib:$LD_LIBRARY_PATH"
fi
else
export LD_LIBRARY_PATH="/usr/local/iscir/lib"
fi
那应该起作用,但是整个事情没有任何意义。什么时候会LD_LIBRARY_PATH
是1
?我真的不知道这将如何执行。如果您只想添加/usr/local/iscir/lib
到LD_LIBRARY_PATH
尚不存在的内容,则只需执行以下操作:
if [ -z "$LD_LIBRARY_PATH" ]; then
export LD_LIBRARY_PATH="/usr/local/iscir/lib"
elif [[ ! "$LD_LIBRARY_PATH" == */usr/local/iscir/lib* ]]; then
export LD_LIBRARY_PATH="/usr/local/iscir/lib:$LD_LIBRARY_PATH"
fi
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句