【Linux笔记】bash/sh、./和source执行bash脚本的区别

  1. 显式指定解释器(如bash mybat.sh)的情况下,每次执行脚本时都会开启一个子shell,因此不保留当前的shell变量;
  2. 使用source或者点./执行(如./mybat.shsource mybat.sh),在当前shell环境加载脚本,因此保留脚本中的变量;

例如:
有脚本文件内容为

#!/bin/bash
name="cxk"

在终端中用bash命令调用该脚本后,echo ${name},会发现name为空。

但若用source或者 . 调用,再echo ${name},会返回cxk



0

作者:码鸽
链接https://code-pigeon.github.io/blog/html/【Linux笔记】执行bash三种方式的区别.html
版权声明:博客所有原创内容(包括但不限于文章、图像等)除特别声明外,均采用CC BY-NC-SA 4.0国际许可协议。任何人均可自由传播,但禁止用于商业用途且必须署名并以相同方式分享。

评论