如何传递多个参数并使用echo执行shell脚本?

myss37ts  于 2022-11-02  发布在  Linux
关注(0)|答案(1)|浏览(244)

我想执行一个交互式shell脚本,该脚本使用“echo”命令要求多个用户输入。该脚本的执行方式如下:

./install.sh
are you sure you want to install (y/n) *<required user input>*
enter root password: *<required user input>*

Installation Successful.

我想install.sh在一行命令中执行www.example.com,而不需要任何提示。为此,我尝试了“echo”,但似乎不起作用:
echo password | echo y | ./install.sh
如何使用所有输入值一次性执行此脚本(使用echo或其他方法)?

ie3xauqp

ie3xauqp1#

echo password | echo y | ./install.sh
您已经很接近了,但是echo并不适合放在管道的中间:它不使用其stdin执行任何操作,因此您将丢失管道早期的任何内容。
您希望将echo语句分组并将 that 管道传输到安装脚本中:

{
  echo y
  echo "$password"
} | ./install.sh

或者,使用printf命令(重复使用格式字符串,直到使用完所有参数)

printf '%s\n' "y" "$password" | ./install.sh

相关问题