我见过一个修改 Unix $PATH 的脚本,为了避免重复项目,它使用了以下技术:
set path = ($path:q /some/new/path)
set path = ($path:q /another/directory)
set -f path = ($path:q)
不明白怎么操作...
“-f”标志的文档说:
禁用文件名生成
这对我来说没有任何意义。这个奇怪的“:q”是什么?
谢谢!
编辑:
这个超级用户问题帮助我理解了“:q”是一个修饰符。tcsh man解释说:
当 `:q' 修饰符应用于替换时,变量将扩展为多个单词,每个单词用空格分隔并引用以防止以后的命令或文件名替换
第二次编辑:
实际上,似乎只有“-f”才能发挥作用:
~$ set days = (Sunday Monday Tuesday Monday Sunday)
~$ echo $days
Sunday Monday Tuesday Monday Sunday
~$ set -f days = ($days)
~$ echo $days
Sunday Monday Tuesday
不过,我不明白“禁用文件名生成”的结果如何。