每次我运行终端时,我都会收到此错误消息“.bashrc 语法错误:文件意外结束”
所以我开始评论它的一部分来了解这个问题,我猜它是在下面的 if 条件下。我想知道如何编辑它才能工作?
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
bash 中没有
endif
。if
语句以.结尾fi
。此外,在使用[ ]
测试构造时,您需要在[
. 正=~
则表达式匹配运算符,需要 bash 的 special[[ ]]
而不是 POSIX[ ]
,并且要否定匹配,你否定整个测试([[ ! foo ~ bar ]]
),你不能使用!~
. 此外,它需要正则表达式,而不是 shell glob。所以*
本身并不意味着什么,你需要.*
“任何角色”。然后,设置和导出变量的格式是export foo=bar
and 而且,你在和?
之间有一个杂散。所以试试这个:$
LD_LIBRARY_PATH
这应该可行,但整个事情没有意义。什么
LD_LIBRARY_PATH
时候1
?我真的不明白这将如何执行。如果你想要做的只是添加/usr/local/iscir/lib
到LD_LIBRARY_PATH
它不存在的话,你只需要这个:如果你想编辑它:
[
两边都需要空间=~
不是test
. 您需要该命令[[
。=
符号(两次)"1" == "$?LD_LIBRARY_PATH"
永远是假的如果您只想在路径不包含扩展的情况下扩展路径,则可以使用它: