我遇到了许多带有所有大写变量的 shell 脚本,我一直认为这是一个严重的误解。我的理解是,按照惯例(也许很久以前是必要的), 环境变量 都是大写的。
但是在像 Bash 这样的现代脚本环境中,我一直更喜欢使用小写字母命名临时变量,而大写字母 仅用于导出(即环境)变量 。例如:
#!/usr/bin/env bash year=`date +%Y` echo "It is $year." export JAVA_HOME="$HOME/java"
这一直是我对事情的看法。是否有任何权威人士同意或不同意这种方法,或者纯粹是风格问题?
按照惯例,环境变量 ( PAGER, EDITOR, …) 和内部 shell 变量 ( SHELL, BASH_VERSION, …) 都是大写的。所有其他变量名称应为小写。
PAGER
EDITOR
SHELL
BASH_VERSION
请记住,变量名是区分大小写的;此约定避免意外覆盖环境和内部变量。
遵守这个约定,您可以放心,您不需要知道 UNIX 工具或 shell 使用的每个环境变量,以避免覆盖它们。如果它是您的变量,请将其小写。如果你导出它,大写它。