错误:$ ($) 中的修饰符
Bad : modifier in $ ($)
我写了小脚本,遇到了错误的修改错误。无法弄清楚我在这里缺少什么。 cth_pythonpath 变量存在于环境中并且能够打印变量
#!/bin/csh -f
set script_rootdir = `dirname [=10=]`
set script_abs_rootdir = `realpath $script_rootdir`
setenv PYTHONPATH $CTH_PYTHONPATH:$PYTHONPATH
错误:
Bad : modifier in $ ($).
csh 允许 $varname:x
形式的变量修饰符,其中 x
是一个字母。一些例子是 :e
获取扩展名, :q
引用字符串,以及更多。例如:
> set path = 'file.txt'
> echo $path:e
txt
您 运行 遇到的问题是:
setenv PYTHONPATH $CTH_PYTHONPATH:$PYTHONPATH
相同的语法:$CTH_PYTHONPATH
以 :
结尾,因此它尝试应用 $
修饰符,但此修饰符不存在,因此您会收到错误消息:
Bad : modifier in $ ($).
解决方法是使用${varname}
明确告诉csh变量名何时结束或使用引号:
setenv PYTHONPATH ${CTH_PYTHONPATH}:${PYTHONPATH}
setenv PYTHONPATH "$CTH_PYTHONPATH":"$PYTHONPATH"
我建议顺便引用变量;它将防止空格等问题;我可能会这样写:
setenv PYTHONPATH "${CTH_PYTHONPATH}:${PYTHONPATH}"
注意,如果你能顺便帮忙,我不推荐使用csh;这是一个旧的 shell,有很多问题,包括各种情况下的奇怪错误。请注意您遇到的错误如何不打印行号或者实际上非常有用。
我写了小脚本,遇到了错误的修改错误。无法弄清楚我在这里缺少什么。 cth_pythonpath 变量存在于环境中并且能够打印变量
#!/bin/csh -f
set script_rootdir = `dirname [=10=]`
set script_abs_rootdir = `realpath $script_rootdir`
setenv PYTHONPATH $CTH_PYTHONPATH:$PYTHONPATH
错误:
Bad : modifier in $ ($).
csh 允许 $varname:x
形式的变量修饰符,其中 x
是一个字母。一些例子是 :e
获取扩展名, :q
引用字符串,以及更多。例如:
> set path = 'file.txt'
> echo $path:e
txt
您 运行 遇到的问题是:
setenv PYTHONPATH $CTH_PYTHONPATH:$PYTHONPATH
相同的语法:$CTH_PYTHONPATH
以 :
结尾,因此它尝试应用 $
修饰符,但此修饰符不存在,因此您会收到错误消息:
Bad : modifier in $ ($).
解决方法是使用${varname}
明确告诉csh变量名何时结束或使用引号:
setenv PYTHONPATH ${CTH_PYTHONPATH}:${PYTHONPATH}
setenv PYTHONPATH "$CTH_PYTHONPATH":"$PYTHONPATH"
我建议顺便引用变量;它将防止空格等问题;我可能会这样写:
setenv PYTHONPATH "${CTH_PYTHONPATH}:${PYTHONPATH}"
注意,如果你能顺便帮忙,我不推荐使用csh;这是一个旧的 shell,有很多问题,包括各种情况下的奇怪错误。请注意您遇到的错误如何不打印行号或者实际上非常有用。