欢迎光临,赤鹿小组
记录过程,分享经验

揭秘 env/set/export/declare 的区别

在 Linux 系统中,这 4 个命令都是可以查看显示 Shell 中的变量。但实际上的区别都在哪呢?

大家都知道,变量可以分为:环境变量自定义变量,两者的区别在于:

  • 环境变量:可以在其进程的子进程中继续有效。
  • 自定义变量:无法延伸至其进程的子进程。

那么,则可以从两者的类型进行区分了:

  • env:显示当前用户的环境变量,但不会显示其自定义变量。
  • export:功能同 env,也是显示当前用户的环境变量,只不过该命令的输出是按变量名进行排序的。
  • set:功能同 declare,显示当前 Shell 中定义的所有变量,包括用户的环境变量和自定义变量。
  • declare:显示当前 Shell 中定义的所有变量,包括用户的环境变量和自定义变量,该命令的输出按变量名进行排序。

结论:

  • env 和 export 显示的是环境变量。
  • set和declare显示的是环境变量和自定义变量。
  • 同作用的区别又在于是否按 变量名 进行排序。

设置 Shell 环境变量

$PATH 环境变量,是 Linux 系统比较常用的变量之一。

格式:多个路径组成,由英文冒号(:)进行分割。

echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ascmcs/.local/bin:/home/ascmcs/bin

而它的作用可以大大的提升工作效率,在执行某个命令时,可以快速的在 Linux 系统找到。如果是自身运维的命令,那么可以将其加入至 $PATH 中。

# 假设将用户家目录下的 tools 添加 $PATH
export PATH=$PATH:/home/ascmcs/tools
赞(0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址