尝试使用man sh
或者man bash
手册页来查找正在使用的shell。(也许吧man $SHELL
。)
这是官方不称为“点”命令,而是source
命令。搜索单词source
可能会有所帮助。
例如,bash手册页(搜索“each builtin command”),你会很快找到文档。
至于解释用途,我可以在这里做到这一点。我将把它作为source
命令引用,认识到它可以缩写为你使用一些shell时的一段时间,并且有一些shell可能需要命令(因为dot可能被识别但是整个单词source
可能不会是)。
如果使用该source
命令,shell将从脚本文件中读取每一行,并尝试执行它。您需要对文件具有“读取”权限。(如果您具有“执行”权限,则无关紧要。)如果修改变量,则容易影响当前的shell。
另一方面,如果您只是尝试执行该文件,那么您的shell将要求操作系统处理此请求。这将需要“执行”权限。(在某些系统上,比如OpenBSD,你不需要“读取”权限。在其他系统上,包括许多Unix变种,你会。)文件可能需要以适当的头开始(例如#!/bin/sh
),以便操作系统将此识别为脚本文件。操作系统将执行所请求的shell的副本,并告诉该shell运行脚本的内容。如果更改了shell环境(例如,变量获取新值,则更改工作目录(带 cd
),重定向文件描述符(带有 exec
),等等,它只会影响为脚本调用的子shell,并且不能修改调用脚本文件的父shell中的环境。