source是一个便捷的外置,它接受参数、解析中的并在shell环境中执行它们。该文件的内容由source读取,然后传递给工具语言(TCL)类库,该例程执行命令。
如今让我们学习怎样在Linux上使用source执行命令和使用shell环境,并简略说明它与bash命令的区别。
使用source执行文件中的命令
要使用source命令,您首先须要创建一个示例文件并使用一些shell命令填充它。首先使用touch命令创建一个新文件。在您选择的文本编辑器中打开文件并编撰一些基本的shell命令。
touch linuxmi.txt
vim linuxmi.txt
# 在文本文件中写入命令:
echo "Hello!Linux迷 linuxmi.com"
pwd
ls
# 使用Source语法或点语法
. linuxmi.txt
source linuxmi.txt
写出文本文件并继续将其作为参数传递给source命令。系统将执行文件中的命令并返回输出。
如今您早已了解了怎样使用source的基础知识linux source 命令,让我们尝试修改Bashshell环境。并且,在继续之前,您必须对Linux中的环境变量有基本的了解。
使用source命令更新BashShell环境
在Linux上,环境变量是承继但不可变的。倘若您执行更改环境变量$TEST的Bashshell,该脚本将生成一个新的分叉shell进程,而且$TEST的更改将在其中而不是原始Bash环境中进行。
子进程将难以更改父进程的环境。它只能更改自己的环境。让我们用一个实际的事例来理解这一点:
export TEST="deb"
vim linuxmi
# 在文件中键入这些命令
export TEST="bed"
echo $TEST
# 写文件,使其可执行,然后执行它
chmod +x linuxmi
./linuxmi # 这将返回 "bed"
echo $TEST # 这将返回 "deb"
这就是source命令发挥作用的地方。使用source命令linux source 命令,您可以在相同的shell环境中执行脚本,否则会被分叉。为此,假若您获取更改环境变量的脚本,它将对Bashshell环境进行修改。
要对其进行测试,请将前面代码框中的命令写入一个新文件并使用source命令而不是使其可执行。
# 创建一个新文件并编辑它
vim linux
.linux
echo $TEST # 运行后返回 "bed"
如您所见linux应用程序,使用source命令,您可以更新父进程的环境变量。这是source命令的主要用例,即更改父环境。
这就是使用source命令更新Bashshell环境所需的所有步骤。
Linuxbash和source命令之间的区别
Linuxbash和source命令的区别在于,当你用bash命令执行脚本时,它告诉Linux内核创建一个新的Bash进程来读取和执行脚本,将输出复制到原先的shell进程中,并显示下来.
然而source命令是一个外置的shell,它读取和评估当前shell进程中的文件。为此,脚本所做的所有修改都将保留在Bashshell中。
排除source命令错误
在个别Linux系统中,您可能会在尝试使用source命令时遇见错误“找不到source”。您可以通过两种方法修补此错误:
1.换shell
个别shell不支持source命令。在这些情况下,您须要使用chsh-s($whichshell_name)命令修改您的shell环境。
在修改shell后启动一个新的终端,并尝试使用source命令。假如新的shell支持source命令,这么它应当可以完美地工作。
2.使用点/句点句型
一些shell环境不支持“source”语法,而是支持“.”语法。“source”语法是Bash中点的同义词。但这在POSIXshell中不起作用,因而为了获得最大的兼容性linux空间,请使用句点句型。
你应当晓得的基本Linux命令
Linuxshell命令是使用终端与系统交互的好方式。它们是使用*NIX系统的本质。
尽管您不须要了解所有命令,但熟悉一些有用的命令肯定会在您深入Linux世界时取得丰硕成果。
本文原创地址://sclmfb.cn/lzsmldsyzxml.html编辑:刘遄,审核员:暂无