Linux Shell中如何自动输入命令需要接受的键盘输入

Shell下,输入某个命令,命令运行后,需要用户输入一个值(比如让用户选择 Y/N 这种),命令才能进行下一步。可是,我不想每次运行该命令都要手动输一次(比如输入Y),有没有一种方法,可以预先输入Y,于是我就可以自动执行该命令N次都执行Y选项,而不必每次人工输入。求方法

传递交互式参数的话,你可以试试这种,比如创建分区的一个例子:

echo "p        主分区

1                   第一分区

                    指定默认从1开始

+200M        分区200M

t                    更改分区类型

若只有一个则不需要指定分区

8e                lvm分区

w" | fdisk /dev/sdb

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-25
如果abc.sh脚本里有要输入y再往执行的,可以 echo "y" |abc.sh本回答被网友采纳
第2个回答  2019-02-25
传递交互式参数的话,你可以试试这种,比如创建分区的一个例子:
echo "p 主分区
1 第一分区
指定默认从1开始
+200M 分区200M
t 更改分区类型
若只有一个则不需要指定分区
8e lvm分区
w" | fdisk /dev/sdb
第3个回答  2014-03-28
不用那么麻烦 如果 yes | ./xxx.sh 就OK了
或者 在脚本里面 例如 # rm file1 (会提示你Y/N)
你这样写 yes | rm file1 (免交互 直接删除了)
希望能帮到你
第4个回答  2014-03-28

依次考虑以下三种方案:

    有些命令带有命令行参数,可以去掉这种询问(如 debian 软件包管理命令 aptitude)

    有些命令是从标准输入读取应答数据的,这可以用管道完成。一个毫无意义的例子:
    echo y | rm -i file
    (因为去掉 -i 就不用回答了,所以说它毫无意义)

    有些命令绕开标准输入,直接从终端读取应答数据,这种情况可以用 expect 来解决。使用 expect 需要多看点东西,我无法在这简单举例说清楚。

本回答被网友采纳
相似回答