错误:$ (/) 中的修饰符

Bad : modifier in $ (/)

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/my/lib

错误:

Bad : modifier in $ (/)

回声$SHELL

/bin/tcsh

我想将我的库添加到 LD_LIBRARY_PATH 变量。但是报上面的错误。

作为 Ignacio Vazquez-Abrams, pointed out you need to set environment variabletcsh 语法中作为

setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:"/home/my/lib"
# Assign empty string to LD_LIBRARY_PATH, if the variable is undefined
[ ${?LD_LIBRARY_PATH} -eq 0 ] && setenv LD_LIBRARY_PATH ""

setenv LD_LIBRARY_PATH "${LD_LIBRARY_PATH}:/home/my/lib"

检查变量是否已定义

如果之前未定义该变量,简单的 setenv LD_LIBRARY_PATH value 命令将失败并出现类似 LD_LIBRARY_PATH: Undefined variable. 的错误。为防止这种情况,请检查 ${?LD_LIBRARY_PATH} 的值(substitutes 字符串 1 如果设置了名称,0 如果未设置)并设置默认值,如图所示以上。

使用双引号

还要注意双引号的使用。假设变量包含空格,例如:

setenv LD_LIBRARY_PATH "/home/user with spaces/lib"

然后不带引号的命令:

setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/home/my/lib

将失败并出现以下错误:

setenv: Too many arguments. 

然而,在双引号中,值作为单个单词传递给命令。