我怎么脚本mkfs问“是整个设备,而不是一个分区! 仍要继续?”

我正在尝试创build一个格式化Amazon EC2 EBS卷的脚本,所以我可以安装它。

从命令行看起来像这样:

> mkfs -q -t ext4 /dev/sdf /dev/sdf is entire device, not just one partition! Proceed anyway? (y,n) 

(该命令是正确的;不需要为我的目的创build一个分区表)

我的问题:因为这个命令应该是在一个自动化的脚本中运行,我不能在terminal上有这个问题; 没有人会回答,脚本将挂起。 我如何避免这种情况?

我试过了:

 > echo y | mkfs -q -t ext4 /dev/sdf 

但这并不能解决问题。 -q选项也没有区别。

从手册:

  -F Force mke2fs to create a filesystem, even if the specified device is not a partition on a block special device, or if other parameters do not make sense. 

所以直接调用mkfs.ext4而不是通过mkfs ,并添加-F参数来忽略这个警告。

expect是你在找什么。 尝试这样的事情:

 #!/usr/bin/expect spawn mkfs -q -t ext4 /dev/sdf expect "/dev/sdf is entire device, not just one partition!\nProceed anyway? (y,n)" send -- "y\r" expect eof