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

bash脚本中未正确显示环境变量

  •  1
  • Stanley  · 技术社区  · 7 年前

    试图添加名为abc的数据库,但postgresql会创建一个名为NEW\u database的数据库。

    export NEW_DATABASE=abc
    psql -U postgres -c 'create database "$NEW_DATABASE";'
    

    省略双引号会导致错误

    ERROR:  syntax error at or near "$"
    LINE 1: create database $NEW_DATABASE;
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   John1024 David C. Rankin    7 年前

    替换:

    psql -U postgres -c 'create database "$NEW_DATABASE";'
    

    使用:

    psql -U postgres -c "create database \"$NEW_DATABASE\";"
    

    问题是shell变量没有在单引号内展开。如果要展开shell变量,请使用双引号。