-1

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

#!/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

被标记为重复的问题不回答这个问题。它在概念上相似,但差异足以保证它自己的问题。

4

1 回答 1

2

尝试:

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

或者:

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

无论如何,不​​需要最后的 EOL,因为它是自动插入的。

于 2019-01-31T20:44:53.730 回答