代码之家  ›  专栏  ›  技术社区  ›  Super_Programmer

Linux中带括号的环境变量?[副本]

  •  -1
  • Super_Programmer  · 技术社区  · 4 月前

    我试图理解括号中的以下示例。

    AIRFLOW_PROJ_DIR 
    

    是一个环境变量,将由括号外的$符号调用。但是我很难理解环境变量之后的部分。括号内的这些是什么意思?

    :-.
    
     ${AIRFLOW_PROJ_DIR:-.}/dags
    

    我试着在谷歌上搜索,并在论坛上寻求帮助。

    1 回复  |  直到 4 月前
        1
  •  1
  •   Brandon Lotero    4 月前

    你所描述的被称为 shell parameter expansion 这意味着在求值时,bash会搜索变量的值,如果找不到,则会将值赋给 :- .

    换句话说,如果 AIRFLOW_PROJ_DIR 变量已定义(其值为例如。 /home/me/airflow/project ),则表达式的计算结果为 /home/me/airflow/project/dags 否则,如果未定义,则将评估为 ./dags .

    有关外壳参数扩展的更多信息,请访问: https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html