![使用 fdisk 自动创建分区](https://linux22.com/image/144189/%E4%BD%BF%E7%94%A8%20fdisk%20%E8%87%AA%E5%8A%A8%E5%88%9B%E5%BB%BA%E5%88%86%E5%8C%BA.png)
我在命令行上使用这些命令:
sudo fdisk /dev/mmcblk1
p
d
w
sudo fdisk /dev/mmcblk1
n
(using all defaults)
w
请问有什么选项可以自动执行此任务吗?或者如何为此使用一个衬垫(即使对于每个 fdisk 命令一个衬垫,总共两个 1 衬垫)?或者也许用Python?
答案1
您可以使用单行命令(bash):
(echo p; echo d; ... ; echo w) | fdisk /dev/mmcblk1
要设置默认答案,请使用echo ""
,要回答“是”,请使用echo "Y"
答案2
只需创建一个包含命令的文件(例如fdisk_cmds
),例如:
p
i
# This is a blank line to select a default response
q
sudo fdisk /dev/mmcblk1 < fdisk_cmds
答案3
考虑使用 SFDisk 来完成这项工作。
https://stackoverflow.com/questions/12150116/how-to-script-sfdisk-or-parted-for-multiple-partitions
TIA
卡洛斯·罗梅尔
答案4
首先使用更合适的工具。但如果您需要自动执行此类输入,请使用此处文档:
sudo fdisk /dev/mmcblk1 <<\EndOfAnswers
p
d
w
q
EndOfAnswers
(您可以选择您喜欢的任何单个字符来代替EndOfAnswers
;您将看到很多文档使用,EOF
但这只是一个约定。\
after<<
只是使第一个字母EndOfAnswers
“引用”,正如 shell 所看到的那样,这意味着没有$
扩展出现在此处文档的正文中;您可以使用<<'EndOfAnswers'
or<<"EndOfAnswers"
或 甚至获得相同的效果<<EndOfA\nswers
。)