2012-01-03 62 views
5

我正在嘗試創建一個自動化的bash腳本,該腳本用單元的閃存中的urandom填充文件。我可以手動使用所有的命令來實現這一點,但我試圖創建一個腳本,並且很難弄清楚如何檢查USB設備。我知道這將是sda1或sdb1,但不知道下面的代碼是否足夠......?謝謝!下面是代碼:如何使用if語句在bash中檢查usb設備

if /dev/sda1 
then 
     mount -t vfat /dev/sda1 /media/usbkey 
else 
     mount -t vfat /dev/sdb1 /media/usbkey 
fi 
+0

腳本可掛載驅動器的方式是首先將文件放在驅動器上,例如, 「Iamthemountabledrive.txt」,然後檢查該文件的存在。如果它不在那裏,那麼我安裝驅動器。我使用這種技術來確保爲5個無線電臺網絡安裝音頻服務器,在出現網絡中斷事件的情況下檢查每一分鐘。 – 2012-01-03 15:46:59

+0

@MattH如果您的bash腳本中的驅動器尚未安裝,如何檢查該驅動器上是否存在該文件(「lamthemountabledrive.txt」)? – suffa 2012-01-03 15:59:07

+0

'testfile =「/ dev/usbdrive/Iamthedrive.txt」 if [-e「$ testfile」] then echo「drive is mounted」。 fi' – 2012-01-03 16:05:30

回答

6

您可以通過標籤UUID安裝,從而減少你的腳本的複雜性。例如,如果你的閃存有標籤MYLABEL(您可以使用mtools「mlabel設置和顯示VFAT標籤):

$ sudo mount LABEL=MYLABEL /media/usbkey 
6

的方式我腳本安裝的驅動器是第一個把一個文件的驅動器,例如上「Iamthemountabledrive.txt」,然後檢查該文件的存在。如果它不在那裏,那麼我安裝驅動器。我使用這種技術來確保爲5個無線電臺網絡安裝音頻服務器,在出現網絡中斷事件的情況下檢查每一分鐘。

testfile="/dev/usbdrive/Iamthedrive.txt" 
if [ -e "$testfile" ] 
then 
    echo "drive is mounted." 
fi