通过bash脚本拔出硬盘

时间:2013-07-05 07:10:51

标签: macos bash disk

我在我的笔记本电脑上使用了2个硬盘(Mac Os 10.8),我想通过使用shell脚本自动取消未使用的硬盘。问题是名称(?)可以随机改变,今天我有了这个:

MacBook-Pro-de-Thomas:~ thomas$ diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *250.1 GB   disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:                  Apple_HFS 10.8                    249.7 GB   disk0s2
/dev/disk1
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk1
   1:                        EFI                         209.7 MB   disk1s1
   2:                  Apple_HFS Mac OS X                870.0 GB   disk1s2
   3:       Microsoft Basic Data Windows                 79.9 GB    disk1s3
   4:       Microsoft Basic Data                         50.0 GB    disk1s4

但在下次重启时,他们可能会切换disk0disk1

我试试这个剧本:

diskutil list | grep -e 'disk1s4'
if [$? == 0] 
    then `hdiutil eject disk1`
    else `hdiutil eject disk0`
fi

但有些事情是错的,我不知道是什么......

1 个答案:

答案 0 :(得分:1)

这个怎么样:

  1. 在磁盘名称循环中运行diskutil list [disk]
  2. 对于每个磁盘,如果名称中包含“Microsoft”的分区,请将磁盘名称保存到变量disk_to_eject
  3. 循环完成后,如果$disk_to_eject不为空,请弹出该磁盘?
  4. 代码如下:

    disk_to_eject=
    for disk in disk0 disk1; do
        if diskutil list "$disk" | grep -q Microsoft; then
            disk_to_eject="$disk"
        fi
    done
    
    if [ -n "$disk_to_eject" ]; then
        hdiutil eject "$disk_to_eject"
    fi