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

2024-11-08 20:06:44
推荐回答(5个)
回答(1):

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

echo "p        主分区

1                   第一分区

                    指定默认从1开始

+200M        分区200M

t                    更改分区类型

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

8e                lvm分区

w" | fdisk /dev/sdb

回答(2):

如果abc.sh脚本里有要输入y再往执行的,可以 echo "y" |abc.sh

回答(3):

传递交互式参数的话,你可以试试这种,比如创建分区的一个例子:
echo "p 主分区
1 第一分区
指定默认从1开始
+200M 分区200M
t 更改分区类型
若只有一个则不需要指定分区
8e lvm分区
w" | fdisk /dev/sdb

回答(4):

不用那么麻烦 如果 yes | ./xxx.sh 就OK了
或者 在脚本里面 例如 # rm file1 (会提示你Y/N)
你这样写 yes | rm file1 (免交互 直接删除了)
希望能帮到你

回答(5):

依次考虑以下三种方案:

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

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

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