Bash脚本缺少']'错误

时间:2013-06-12 17:41:01

标签: linux bash

我已经创建了一个脚本,可以在插入时自动挂载USB设备和cdrom驱动器。我一直在尝试使用autofs(参见https://superuser.com/questions/605896/automount-usb-pen-drive-and-cdrom-drive-on-plugin),但现在尝试使用运行的脚本引导。

我认为逻辑是合理的,但我得到line 13: [: missing ']'

脚本是:

#!/bin/bash
while true
 do
    if [ -b /dev/sda1 ]
       then
       mkdir /media/usb
       mount /dev/sda1 /media/usb
       while [ -b /dev/sda1]; do
         sleep 2
       done
       umount /media/usb
       rmdir /media/usb
    fi
    if [ -b /dev/cdrom ]
       then
       mkdir /media/cdrom
       mount /dev/sda1 /media/cdrom
       while [ -b /dev/cdrom]; do
         sleep 2
       done
       umount /media/cdrom
       rmdir /media/cdrom
    fi

    sleep 5
 done

然后使用./path/to/script&

从rc.local启动脚本

2 个答案:

答案 0 :(得分:9)

你需要一个空间:

while [ -b /dev/cdrom]; do
                     ^
_____________________|

答案 1 :(得分:1)

只缺少一个空白,而不是

while [ -b /dev/sda1]; do

while [ -b /dev/sda1 ]; do