我需要找到点命令的帮助,.
例如. ./my_script.sh
(我的意思是第一点。)
我已经尝试使用man .
and查找手册页man \.
。如何显示说明命令使用的手册页.
?
Kam*_*ski 79
首先你应该调用type .
,你可能会得到类似的东西:
Run Code Online (Sandbox Code Playgroud). is a shell builtin
内置函数是 shell 的一部分,它们没有自己的手册页。不过,其中一些似乎有它们,例如echo
是 Bash 中的内置程序,但很可能/bin/echo
在您的系统中有一个单独的可执行文件,在这种情况下man echo
指的是后者。这两个echo
s 可能不是严格等价的。
您的 shell 可能会通过help
builtin提供有关任何 builtin 的信息;尝试help help
,help type
最后:
help .
Run Code Online (Sandbox Code Playgroud)
内置函数也可能列在您的 shell 手册页中。例如,(在我的Debian)的Bash内建在直接覆盖man bash
,但是对于岩组建宏man zsh
告诉我跑man zshbuiltins
。一般来说,shell 可能会也可能不会解释它们的内置函数。
TOO*_*GAM 24
尝试使用man sh
orman bash
或手册页来了解您正在使用的任何 shell。(也许man $SHELL
。)
这正式不称为“点”命令,而是source
命令。搜索这个词source
可能会有所帮助。
例如,bash 手册页(搜索“每个内置命令”),您将很快找到文档。
至于解释用途,我可以在这里做。我将把它称为source
命令,认识到当您使用某些 shell 时它可以缩写为一个句点,而对于某些 shell,该命令可能需要(因为 dot 可能被识别,但整个单词source
可能无法识别)是)。
如果您使用该source
命令,您的 shell 将从脚本文件中读取每一行,并尝试执行它。您需要对该文件的“读取”权限。(您是否具有“执行”权限并不重要。)如果您修改了一个变量,这很容易影响您当前的 shell。
另一方面,如果您只是尝试执行该文件,那么您的 shell 将要求操作系统处理此请求。这将需要“执行”权限。(在某些系统上,比如 OpenBSD,你不需要“读”权限。在其他系统上,包括许多 Unix 变体,你需要。)文件可能需要以适当的头(例如,#!/bin/sh
)开头,以便操作系统将其识别为脚本文件。操作系统将执行所请求的 shell 的副本,并告诉该 shell 运行脚本的内容。如果 shell 环境发生变化(例如,变量获得新值,工作目录发生变化(使用 cd
),文件描述符被重定向(使用 exec
)等),只会影响调用脚本的子shell,不能修改调用脚本文件的父shell中的环境。
没有人提到它,因为它经常被遗忘。
您最大的线索将来自有用的命令whatis
。
tim@musha ~ $ whatis .
builtins (1) - bash built-in commands, see bash(1)
tim@musha ~ $ whatis source
builtins (1) - bash built-in commands, see bash(1)
tim@musha ~ $ whatis bash
bash (1) - GNU Bourne-Again SHell
tim@musha ~ $ whatis lynx
lynx (1) - a general purpose distributed information browser for the World Wide Web
tim@musha ~ $ whatis linux
linux: nothing appropriate.
tim@musha ~ $ whatis whatis
whatis (1) - display one-line manual page descriptions
Run Code Online (Sandbox Code Playgroud)
编辑:
有些人在评论中指出这不在某些发行版中 - 也许它是一个可安装的包,或者启用了一些方式 - 我在 gentoo 中默认拥有它;)
它包括精彩的 which - 它告诉您调用哪个可执行文件,以及 whereis 为您提供您命名的可执行文件的所有路径,以及它的手册页(如果它存在于多个路径中)。