shell脚本的exit问题(退出脚本还是退出终端)

    今天编写shell脚本。想要程序在运行到一个地方的时候进行判断,结果为真退出程序。运行时直接退出了SecureCRT终端。纠结了一整个上午也没有找到解决方案。

    中午在同事的示范下发现并不是脚本的问题。而是执行方式的问题。

Linux执行文件有如下几种方式:   

(1)./xxx.sh意思是执行当前目录的a.sh文件,与输入完整路径执行脚本效果是一样的。需要a.sh有可执行权限。
(2)sh xxx.sh意思是用shell解释器来执行a.sh脚本,不要求文件有可执行权限。
(3). xxx.sh和source效果相同,作用都是使刚修改过的配置文件立即生效。

shell中使用source conf.sh,是直接运行conf.sh的命令,不创建子shell,source不是直接执行一个文件,而是从一个文本文件里面读命令行,然后执行这些命令。我执行的时候使用了 .  XX.sh,这样相当于直接系统读取exit,然后退出,正确的运行方式是 ./XX.sh 或者sh XX.sh

 

sh是则创建子shell,子shell里面的变量父shell无法使用,对环境变量的修改也不影响父shell。父shell中的局部变量,子shell也无法使用,只有父shell的环境变量,子shell能够使用.

  • 9
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值