Shell下,输入某个命令,命令运行后,需要用户输入一个值(比如让用户选择 Y/N 这种),命令才能进行下一步。可是,我不想每次运行该命令都要手动输一次(比如输入Y),有没有一种方法,可以预先输入Y,于是我就可以自动执行该命令N次都执行Y选项,而不必每次人工输入。求方法
传递交互式参数的话,你可以试试这种,比如创建分区的一个例子:
依次考虑以下三种方案:
有些命令带有命令行参数,可以去掉这种询问(如 debian 软件包管理命令 aptitude)
有些命令是从标准输入读取应答数据的,这可以用管道完成。一个毫无意义的例子:
echo y | rm -i file
(因为去掉 -i 就不用回答了,所以说它毫无意义)
有些命令绕开标准输入,直接从终端读取应答数据,这种情况可以用 expect 来解决。使用 expect 需要多看点东西,我无法在这简单举例说清楚。