对于bash脚本,我通常遵循以下规则:局部变量应为小写,环境变量应为大写。这样我就可以避免意外覆盖环境变量。我正在编写Tomcat启动脚本,并且我从环境变量部分创建了一个tomcat_log变量。
tomcat_log=${TOMCAT_HOME}/logs/tomcat-initd.log
现在我想读入一个可能有默认值的环境变量。它应该是大写还是小写?
# uppercase
CONNECTOR_PORT="${CONNECTOR_PORT:-8080}"
# lowercase
connector_port="${CONNECTOR_PORT:-8080}"
它是一个局部变量,但它也是从环境变量中读取的。我很好奇人们倾向于遵循哪些惯例。
答案 0 :(得分:3)
小写。原因如下:
如果你这样做:
CONNECTOR_PORT="${CONNECTOR_PORT:-8080}"
...然后你不知道CONNECTOR_PORT
变量是否被标记为导出为非。也许它是作为环境变量传递的,并且设置了该标志,或者它没有,它没有。如果你想遵循约定,具有一致的行为,并希望保留一个大写的变量名,那么你需要强制它自己导出:
export CONNECTOR_PORT="${CONNECTOR_PORT:-8080}"
如果你这样做:
connector_port="${CONNECTOR_PORT:-8080}"
...然后很明显,connector_port
未被标记为导出到子流程,无论您的父母是否CONNECTOR_PORT
导出给您。
答案 1 :(得分:0)
正如您已经说过,在脚本中使用小写变量名称是个好主意。
如果我遵循你的惯例那么它应该是小写的。从您处理脚本中的环境变量数据的位置开始,数据将从其原始范围“分离”。
最后我会说这是一个品味问题,也许是主观的,并且取决于观点。