tcsh 中的 -l 参数是什么意思?

tcsh 中的 -l 参数是什么意思?

我正在运行 tcsh shell。

-l我对中的选项有疑问set -l

当我查看 man 的命令时set,我没有看到-l参数。

使用 tcsh shell 时,-l参数的含义是什么?

在哪里以及如何找到此信息?

答案1

你看错地方了。这是来自tcsh(1)手册页:

set
set name ...
set name=word ...
set [-r] [-f|-l] name=(wordlist) ... (+)
set name[index]=word ...
set -r (+)
set -r name ... (+)
set -r name=word ... (+)
    The  first  form  of  the command prints the value of all shell
    variables.  Variables which contain more  than  a  single  word
    print  as a parenthesized word list.  The second form sets name
    to the null string.  The third form sets  name  to  the  single
    word.   The  fourth  form  sets  name  to  the list of words in
    wordlist.  In all cases  the  value  is  command  and  filename
    expanded.   If -r is specified, the value is set read-only.  If
    -f or -l are specified, set only  unique  words  keeping  their
    order.  -f  prefers the first occurrence of a word, and -l the
    last.

所以set -f list=(foo bar baz foo)将设置list(foo bar baz),

set -l list=(foo bar baz foo)将设置list(bar baz foo),

并将set list=(foo bar baz foo)其设置为(foo bar baz foo),保留重复项。

唯一的区别是它如何处理单词列表中的重复项。这个功能在 classic/real 中不存在csh,它现在本身是不受阻碍的开源,并且(如果我没记错的话)是csh许多系统上的默认功能。

答案2

在 TENEX C shell 的手册中,而不是set. TENEX C shell 手册的相关部分-l在其命令概要中具有第四个set


       设置名称...
       设置名称=单词...
       设置 [-r] [-f|-l] 名称=(单词列表) ... (+)
       设置名称[索引]=单词...
       设置-r (+)
       设置 -r 名称 ... (+)
       设置 -r 名称=单词 ... (+)
并在下面的描述中讨论它。

在手册中查找 shell 内置命令,了解它们内置于的 shell。您查看的手册页set可能已经告诉您这样做。 FreeBSD 的手册set确实做到了:

概要
     请参阅相应 shell 手册页中的内置命令说明。

相关内容