每次运行终端时,我都会收到此错误消息“.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
Run Code Online (Sandbox Code Playgroud)
我试过这个,但没有像
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
Run Code Online (Sandbox Code Playgroud)
endif
bash 中没有。一种if
说法是由一个结束fi
。此外,在使用[ ]
测试构造时,您需要在[
. 在=~
正则表达式匹配运算,需要bash的特殊[[ ]]
而不是POSIX [ ]
,并否定了比赛,你否定整个测试([[ ! foo ~ bar ]]
),则不能使用!~
。此外,它需要一个正则表达式,而不是一个 shell glob。所以*
它本身并不意味着什么,你需要.*
“任何角色”。然后,设置和导出变量的格式是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
Run Code Online (Sandbox Code Playgroud)
这应该有效,但整件事没有意义。什么时候会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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1417 次 |
最近记录: |