shell中的点命令与source命令的区别

本文探讨了shell中source命令与点命令的使用,这两种方式都可以用来执行脚本,但source命令会直接在当前shell环境中执行,影响当前环境,而shell scripts则会创建新的子shell来执行,对父shell环境无直接影响。source命令常用于重新加载配置文件,如.bash_profile。
摘要由CSDN通过智能技术生成

1 shell脚本执行方法

有两种方法执行shell scripts,一种是新产生一个shell,然后执行相应的shell scripts;一种是在当前shell下执行,不再启用其他shell。
新产生一个shell然后再执行scripts的方法是在scripts文件开头加入语句:#!/bin/sh。一般的script文件(.sh)即是这种用法。这种方法先启用新的sub-shell(新的子进程),然后在其下执行命令。
另外一种方法就是上面说过的source命令,不再产生新的shell,而在当前shell下执行一切命令。source: source命令即点(.)命令 。在 bash下输入man source,找到source命令解释处,可以看到解释"Read and execute commands from filename in the current shell environment and ..."。从中可以知道,
source命令是在当前进程中执行参数文件中的各个命令,而不是另起子进程(或sub-shell)。


2 source与点命令

  • source 命令是 bash shell 的内置命令,从 C Shell 而来。
  • source 命令的另一种写法是点符号,用法和 source 相同,从Bourne Shell而来。
  • source 命令可以强行让一个脚本去立即影响当前的环境。
  • source 命令会强制执行脚本中的全部命令,而忽略文件的权限。
  • source 命令通常用于重新执行刚修改的初始化文件,如 .bash_profile 和 .profile 等等。
  • source 命令可以影响执行脚本的父shell的环境,而 export 则只能影响其子shell的环境。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值