如何在同一脚本中包含与命令的交互?

如何在同一脚本中包含与命令的交互?

我写了一个脚本来运行一个特定的程序,我的脚本包含很多步骤,其中一些步骤需要我通过写 0 然后回车进行简单的交互,我怎样才能做到这一点,以便我在脚本运行期间不需要交互?

例如:

这是我的脚本的一部分,第三个命令需要我的交互:

    gmx .....        

    gmx mdrun

    gmx trjconv -s md_0_1.tpr -f md_0_1.xtc -o md_noPBC.xtc -pbc mol

现在终端需要输入才能继续运行最后一个命令:

Select group for output
Group     0 (         System) has 189100 elements
Group     1 (          Other) has 189100 elements
Group     2 (            GRM) has 11200 elements
Group     3 (           G8LE) has 177900 elements
Select a group: 

我需要写“0”,然后单击回车完成此命令,然后我的脚本将正常运行下一个命令。

我怎样才能使用相同的书面脚本来做到这一点?我读过一些关于期望函数的帖子,但我不知道如何将它应用到我的案例中。

答案1

有示例脚本样本.sh

#!/bin/bash
echo Enter parameter
read par
echo Read par $par

可以准备一个参数文件parameters.txt 0

然后运行:./sample.sh < parameters.txt
或者你可以这样使用:echo 0 | ./sample.sh

相关内容