首页 > shell script对于PATH变量而言能否只设置自定义变量而非环境变量?

shell script对于PATH变量而言能否只设置自定义变量而非环境变量?

问题来自于鸟哥的书第13章"学习shell script"中第一个示例中的两句话:

#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin
export PATH    #主要是这句

我知道的是:

  1. 环境变量是全局变量(关闭当前的shell后重开shell时变量仍有效),
    自定义变量是局部变量(只针对当前shell有效,关闭后失效)
  2. PATH变量的设置是为了在shell中指定命令执行路径
  3. shell script是在当前shell中被调用的,所以无论PATH是环境变量还是自定义变量,执行shell script的时候,PATH肯定是按照script中的样子设置好的

我的推断是:

我这么想对吗?


设置环境变量的目的是为了能让该变量对任何一个子进程(自当前的 shell 实例创建的,也就是当前环境内启动的子进程,并不只有你说的重启 shell——当然它自身也会受益到)可以访问到。

如果该变量仅在当前脚本内使用,的确没有必要非得 export,但是就你举的例子而言,PATH 显然是希望其他子进程也能够访问到的,因此才会使用 export

所以你的推断是正确的,明白了 export 的使用场景就知道何时可以不用。

【热门文章】
【热门文章】