如何使用 set 命令来查找路径中的目录?

如何使用 set 命令来查找路径中的目录?

我这学期正在选修一门 Linux 课程,实验室里的一个问题是:

使用 set 命令找出路径中的所有目录。

通常情况下,我只会使用$PATHset 来查找路径中的目录。但是,显然问题要求我们使用 set。我以前从未使用过 set,因此去 doman set了解了一点有关该命令的信息,但令我惊讶的是,我的 shell (bash) 没有 set 的条目。但是,我看到这里有一个 set 手册页http://linuxcommand.org/lc3_man_pages/seth.html所以这是我的第一个问题:为什么我使用该命令时没有条目man set

我在讨论板上发帖说,如果我直接输入,set它会吐出一堆函数内容,看起来像是rails我在机器上安装的信息。不知道那里发生了什么。我的教授解释说 set 是一个“内置”函数,这就是为什么它可能没有手册页中的文档。

在网上查看了设置文档后,我仍然不知道如何让它吐出我的$PATH,在做了一些研究之后,我还没有找到任何真正能set很好地解释我需要使用它的内容

需要明确的是,我在这里不仅仅是寻求答案,一个能给我指明正确方向的一般性解释将会非常有帮助。

总结

  1. 为什么我可以在线找到手册条目,set但是当我使用该命令时,man set我的终端中却没有可用的文档。

  2. set在我的目录中查找目录的一般方法是什么PATH

谢谢!

编辑:完整问题:

  1. 使用 set 命令找出“PATH”中的所有目录。您将获得大量数据,并且需要通过管道传输到另一个命令来筛选出您想要的内容。请注意,PATH 是大写的。在下面粘贴或输入这些目录。您将获得大量数据,因此看看您是否可以深入挖掘以获得答案。

答案1

您说得对,这set是一个 shell 内置命令:这意味着它的文档位于 bash 的手册页(在部分中SHELL BUILTIN COMMANDS),而不是它自己的手册页中。更简单地说,您可以通过键入以下内容来获取基本使用信息

help set

从 shell 提示符。至于使用它来“找出路径中的所有目录”,最好有一些上下文 - 我真的无法想象你的导师/老师可能想做什么,除了可能使用set -- $PATH(使用合适的IFS字段分隔符)将路径元素分配给 shell 的位置参数,然后打印它们。

答案2

  1. 有一个手动条目set:源自POSIX 标准的规范set。要查看它,您必须manpages-posix-dev安装(好吧,manpages-posix可以,但您最好同时安装两者)。然后您可以执行以下操作:

    man 1posix set
    

    或者访问在线 Ubuntu 手册页:http://manpages.ubuntu.com/set.1posix
    如果可能,请优先选择该网站的手册页,因为它反映了可在您的 Ubuntu 系统上使用的手册页。其他网站可能会有很大差异。

  2. 你的教授可能希望你使用grep命令与 结合使用set。由于某些原因,这不是正确的方法™。grep可用于从另一个命令的输出或文件中过滤出行。并且set的默认输出是... shell 中设置的每个变量及其值,包括PATH

最后,你忘了点击下一个查看 Bash 文档时。

相关内容