LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: cuinantrue

请问,该怎样写一个SHELL脚本,自动执行fdisk呢?[已解决]

[复制链接]
发表于 2004-2-17 18:33:35 | 显示全部楼层
最初由 javalee 发表
那么好的脚本为什么不发到我这里来~~:mad: 生气ing~~~ :p

上次在基础版的dellink脚本,javalee老大还没有把它收录到你旗下呢:mad:
亏你们一群老大还说经常按主题归类帖子.
发表于 2004-2-17 18:53:17 | 显示全部楼层
最初由 home_king 发表
上次在基础版的dellink脚本,javalee老大还没有把它收录到你旗下呢:mad:
亏你们一群老大还说经常按主题归类帖子.

:sorry,不能让好东西沉下去~,我已经把你的这两个作品发布在咱们区了~
发表于 2004-2-17 19:10:07 | 显示全部楼层
顶上的问题可以用 expect 来解决
发表于 2004-2-17 19:15:49 | 显示全部楼层
$ vi fdisk.exp

  1. #!/usr/bin/expect -f

  2. spawn fdisk /dev/hda
  3. expect -exact "Command (m for help): "
  4. send -- "p\r"
  5. expect -exact "Command (m for help): "
  6. send -- "q\r"
  7. expect eof
复制代码

$ chmod +x fdisk.exp
$ ./fdisk.exp ## 输出如下

  1. spawn fdisk /dev/hda

  2. The number of cylinders for this disk is set to 9729.
  3. There is nothing wrong with that, but this is larger than 1024,
  4. and could in certain setups cause problems with:
  5. 1) software that runs at boot time (e.g., old versions of LILO)
  6. 2) booting and partitioning software from other OSs
  7.    (e.g., DOS FDISK, OS/2 FDISK)

  8. Command (m for help): p

  9. Disk /dev/hda: 80.0 GB, 80026361856 bytes
  10. 255 heads, 63 sectors/track, 9729 cylinders
  11. Units = cylinders of 16065 * 512 = 8225280 bytes

  12.    Device Boot    Start       End    Blocks   Id  System
  13. /dev/hda1   *         1      1275  10241406   83  Linux
  14. /dev/hda2          1276      1340    522112+  82  Linux swap
  15. /dev/hda3          1341      9729  67384642+   5  Extended
  16. /dev/hda5          1341      4987  29294496   83  Linux
  17. /dev/hda6          4988      6203   9767488+  83  Linux
  18. /dev/hda7          6204      7419   9767488+  83  Linux
  19. /dev/hda8          7420      8635   9767488+  83  Linux
  20. /dev/hda9          8636      9729   8787523+  83  Linux

  21. Command (m for help): q
复制代码
发表于 2004-2-17 19:16:46 | 显示全部楼层
最初由 dearvoid 发表
顶上的问题可以用 expect 来解决

嗯,就是程序交互式语言,用以使用fdisk自动分区。
我当初也想过这种方案,不过觉得没必要搞得太复杂拉,而且parted比fdisk更好。
发表于 2004-2-17 19:19:01 | 显示全部楼层
sfdisk 好像也可以
发表于 2004-2-18 11:22:01 | 显示全部楼层

dearvoid的脚本最贴切!

一会儿就让俺们这边其他人也学习一下
不过要是能适当的增加一些容错的判断和结果的输出就更好了
其实也可以考虑给fdisk添加一个类似parted的-s参数用于处理脚本输入
实现起来不算难,但是估计人家fdisk的原作者另有考虑吧?
(也许我没发现fdisk的这种用法)
另:javelee如需咨询rhce事宜,欢迎与我联系(Free!)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表