代码之家  ›  专栏  ›  技术社区  ›  James Wierzba

如何在ANSIC-like字符串中展开env var并使用文字换行符?[副本]

  •  -1
  • James Wierzba  · 技术社区  · 7 年前

    我使用herestring将一个字符串(两个带换行符的输入值)作为标准输入传递给安装程序的可执行文件。 例如,使用两个输入执行安装程序 /var/tmp yes

    #!/bin/bash
    # run_installer.sh
    
    ./installer <<< $'/var/tmp\nyes\n'
    

    但是,我需要参数化输入。

    例如

    #!/bin/bash
    # run_installer.sh
    export INPUT1="$1"
    export INPUT2="$2"
    
    # does not work, it evaluates literally to: ./installer ${INPUT1} ${INPUT2}
    ./installer <<< $'${INPUT1}\n${INPUT2}\n'
    

    ./run_installer /var/tmp yes
    

    被标记为问题的问题 duplicate

    1 回复  |  直到 7 年前
        1
  •  2
  •   Wiimm    7 年前

    尝试:

    ./installer <<< "${INPUT1}"$'\n'"${INPUT2}"$'\n'
    

    EOL=$'\n'
    ./installer <<< "${INPUT1}${EOL}${INPUT2}${EOL}"
    

    推荐文章