我正在使用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的问题无法回答此问题。它在概念上相似,但又有足够的差异,足以保证它是自己的问题。
答案 0 :(得分:2)
尝试:
stringr
或:
./installer <<< "${INPUT1}"$'\n'"${INPUT2}"$'\n'
无论如何,最后一个EOL不需要,因为它是自动插入的。