sh 和source shebang

shell中使用source conf.sh,是直接运行conf.sh的命令,不创建子shell,类似与html中include,
而sh是则创建子shell,子shell里面的变量父shell无法使用,对环境变量的修改也不影响父shell。父shell中的局部变量,子shell也无法使用,只有父shell的环境变量,子shell能够使用。


shebang:
脚本第一行“#!”语句


注意:1.sh里面包含3句话
第一句是shebang,  表示运行程序应该使用什么东东执行它,这里表示使用#!/bin/cat执行
./1.sh 将1.sh全部cat出来了   这时./1.sh  = cat 1.sh

第二句是shell的打印语句
第三句是非shell语句

直接使用sh 1.sh 是使用 sh/bash 执行1.sh   
执行到第三句的时候报错。注意sh 是打开一个子shell完成任务,结束后返回当前shell

而. 1.sh 或者 source 1.sh 是在当前shell中执行,
 
报错也有区别:sh 1.sh 打开一个子shell,他会提示是在1.sh的第三行出错;
                    而 .   1.sh 是在当前shell下执行,他只会提示错误,不会指示哪个文件;


如果shebang语句就是bash,那么./2.sh 与 sh 2.sh 就没有区别了(还是有区别,报错提示多了一个./目录)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值