source中,就像Python的import或Java的include一样。学习它以扩展您的Bash能力。当您登录到Linuxshell时,您继承了一个特定的工作环境。对于shell,“环境”意味着已经为您设置了某些变量以确保您的命令按预期工作。例如,PATH环境变量定义shell查找命令的位置。没有它,您在Bash中尝试做的几乎所有事情都会失败,并出现“找不到命令”错误。在执行日常任务时,您几乎看不到环境,但它很重要。有多种方法可以影响您的shell环境。您可以更改~/.bashrc和~/.profile等配置文件,可以在启动时运行服务,还可以创建自己的自定义命令或编写自己的Bash函数。通过源添加到您的环境Bash(和其他一些shell)有一个名为source的内置命令。这就是令人困惑的地方:source执行与command相同的功能。(是的,那只是一个点),而source与Tcl命令不同(如果您键入mansource,它可能在屏幕上显示为)。事实上,内置的source命令根本不在您的PATH中。这是Bash自带的命令,想了解更多信息,可以输入helpsource。.command符合POSIX标准。但是source命令不是由POSIX定义的,但可以与.命令。根据Bashhelp,source命令在您当前的shell中执行一个文件。“inyourcurrentshell”这一行很重要,因为它意味着它不会启动子shell。因此,对source执行的任何操作都发生在内部并影响当前环境。在探索source对环境的影响之前,先使用source命令导入一个测试文件,确保其按预期执行代码。首先,创建一个简单的Bash脚本并将其保存为hello.sh:#!/usr/bin/envbashecho"helloworld"使用source,即使不设置可执行文件也可以运行该脚本:$sourcehello.shhelloworld就可以了也使用内置的.命令实现相同的结果:$.hello.shhelloworldsource和.命令成功执行测试文件的内容。设置变量和导入函数你可以使用source将文件“导入”到shell环境中,就像你可以使用include关键字引用C或C++中的库,或者使用import关键字在Python中引入模块一样.这是source最常见的用途之一,它也是.bashrc中的默认包含,通过source导入.bash_aliases以将您在登录时创建的任何自定义别名导入到您的环境中。下面是导入Bash函数的示例。首先,在名为myfunctions的文件中创建一个函数。它将打印您的公共IP地址和本地IP地址:functionmyip(){curl
