首页游戏资讯Linux下source号令、点号令和./施行号令的差别

Linux下source号令、点号令和./施行号令的差别

misa2 04-13 4次浏览 0条评论

关于经常利用linux系统的同窗而言,source filename与./filename应该是各人日常十分高频利用的号令了,其实除了那两个外,还有一个喊做点号令的工具,那么那几者之间有什么区别和联络呢?日常工做进修中,我们又什么时候会用到那些号令符号呢?

Linux下source号令、点号令和./施行号令的差别

什么是点号令?

起首,不要将点号令与点文件或相对途径表达法稠浊。例如 .profile 表达该文件(夹)是一个隐躲文件(夹),您需要利用 ls -a 看到该文件(夹)。别的点还能够表达相对途径,好比,当前文件夹中有一介名为“my-script.sh”的脚本,./my-script.sh 表达当前目次下的my-script.sh脚本。../my-script.sh 表达上一层目次的my-script.sh脚本。

Linux下source号令、点号令和./施行号令的差别

点号令,一种在当前shell下读进途径为filename的文件并依次施行文件中的所有语句的号令,即不会启动一个新的子历程,所有在脚本中设置的变量将成为当前Shell的一部门。好比:当我们修改了/etc/profile文件,并想让它立即生效,而不消从头登录,就能够利用点号令,如“. /etc/profile”,那么一看是不是觉得有点眼熟,那不就是source号令吗?

Linux下source号令、点号令和./施行号令的差别

展开全文

source号令,从C Shell而来,是bash shell的内置号令。点号令,从Bourne Shell而来,是source的另一名称。在bash情况下,两者在利用上是等价的。

source filename(. filename) 与sh filename 及 ./filename施行脚本的区别

举例

#!/usr/bin/env bash

export A="hello world"

echo $A

在当前目次下,我们有一个脚本my-script.sh脚本,内容如上。那时候,我们往施行./my-script.sh或 sh my-script.sh,会得到下面的成果。

$ ./test.sh

hello world

$ echo $A

也就是说,脚本施行了,但是脚本里的情况变量并没有影响当前shell。但是当我们施行. my-script.sh(重视中间有一个空格),或source my-script.sh。

$ . test.sh

hello world

$ echo $A

hello world

能够看到,A那个变量间接在当前shell下生效了,改动了当前情况的变量。

Linux下source号令、点号令和./施行号令的差别

小结

上面几种号令都能够用来主动施行Shell脚本,从而实现主动化治理。它们能够用来启动某些办事,安拆某些软件,改动某些操做系统参数或完成其他操做,也能够用来查抄脚本的准确性,例如查抄脚本的语法和变量定义等。利用那些号令能够节约时间和节约资本,进步脚本的工做效率。

但是source号令和点号令会改动当前shell的形态,因而在现实利用过程中,我们要可以晓得他们的不异与差别。

隐藏文件软件
如何恢复杀毒软件删除的u盘文件?恢复文件的4种办法 佳能相机视频数据丧失原因有哪些?若何恢复数据
相关内容
发表评论

游客 回复需填写必要信息