如何查找z/OS中Shell内置命令的文档?以点命令为例
/bin/sh中
.(点命令)的行为详解 核心作用
.(点命令)是/bin/sh的内置命令,作用是在当前shell进程中执行指定脚本文件里的所有命令,而非启动子shell运行脚本。这意味着脚本里的变量赋值、环境变量修改、别名/函数定义等操作,都会直接影响当前的shell会话。
与普通脚本执行的区别
普通执行脚本(如./sourcedfile)会启动一个子shell进程运行脚本,脚本内的环境变更不会传递回父shell;而使用.命令执行时,所有操作都在当前shell中完成,变更会被保留。
使用语法
. sourcedfile [arg1 arg2 ...]
sourcedfile:要执行的脚本路径。如果是不带路径的文件名,shell会在PATH环境变量指定的目录中依次查找该文件;如果是相对/绝对路径(如./sourcedfile或/home/user/sourcedfile),则直接使用指定路径。- 可选参数
arg1 arg2 ...:会成为脚本内的位置参数(即$1、$2等)。
关键行为细节
- 脚本内的所有命令会被逐行执行,如同直接在当前shell终端输入一样。
- 脚本中定义的环境变量、别名、函数会直接添加到当前shell环境中,会话结束前一直有效。
- 如果指定的脚本不存在、无读取权限,或者在
PATH中找不到不带路径的文件名,shell会抛出错误提示。
如何查看官方文档
.是shell内置命令,无法通过man .单独查询,你可以:
- 查看
sh的手册:执行man sh,在手册内搜索\.(注意转义反斜杠)或关键词dot command,大部分UNIX类系统的sh手册都会详细说明该命令。 - 参考POSIX标准定义:该命令是POSIX shell规范的一部分,相关行为在POSIX的shell命令章节中有明确规定。
示例
创建脚本env_set.sh:
# env_set.sh内容 export MY_VAR="hello from sourced script" alias ll='ls -l'
在当前shell中执行:
. env_set.sh
之后执行echo $MY_VAR会输出hello from sourced script,执行ll会调用ls -l,这些变更都直接作用于当前shell会话。
内容的提问来源于stack exchange,提问作者mike
相关产品推荐
相关产品推荐

