cdcheck 命令

用途

询问 cdromd 守护程序有关设备的信息。

语法

cdcheck { -a | -m | -u | -e }[ -q ] [ -h | -?] DeviceName

描述

cdcheck 命令发送适当的命令至 cdromd 守护程序,以根据所使用的标志获取有关介质或设备的信息。

如果指定的条件为真,那么 cdcheck 命令会返回零(true)退出值并在 stdout 上打印消息。 否则,cdcheck 命令返回非零(false)退出值并在 stderr 上打印错误消息。

要检查设备是否由 cdromd 守护程序管理,使用具有 -a 标志的 cdcheck 命令。 如果正在运行 cdromd 守护程序且指定的设备位于它的设备列表中,那么 cdcheck -a 命令将在 stdout 上打印以下消息之后返回零(true)退出值:
       cd<x> is managed by cdromd.
注: 带有 -a 标志的退出值为零 (True) 表示插入介质时将自动安装介质。 这并不意味着当前装有介质。
要检查是否存在某介质及 cdromd 守护程序是否安装了该介质,使用具有 -m 标志的 cdcheck 命令。 当某介质已插入驱动器,从它做好准备以至安装完毕要花几秒或几十秒钟。 cdcheck -m 命令会一直等待直至 cdromd 守护程序的安装操作结束。 如果此操作成功,cdcheck -m 命令在 stdout 上打印安装点后,会返回零(true)退出值。
注意:如果介质已损坏,cdromd守护进程无法加载,cdcheck-m命令将返回非零(假)退出值,并在stderr 上打印错误信息。
要检查此介质是否存在且是否由 cdumount 命令卸载,使用具有 -u 标志的 cdcheck 命令。 如果正在运行 cdromd 守护程序且指定的设备处于卸载状态, cdcheck -u 命令在 stdout 上打印以下消息后会返回零(true)退出值:
       cd<x> is not mounted.
要检查指定的设备中是否无介质,使用具有 -e 标志的 cdcheck 命令。 如果正在运行 cdromd 守护程序且驱动器中没有介质存在,那么 cdcheck -e 命令在 stdout 上打印以下消息后会返回零(true)退出值:
       No media present in cd<x>.

在 shell 脚本中使用 cdcheck 时, -q 标志可添加至 cdcheck 命令,这样不会在 stdout stderr 上打印任何消息。 仅有的例外是具有 -m 标志的 cdcheck 命令,它总是在 stdout 上打印安装点,这样 shell 脚本就能获取此安装点。

标志

描述
-a 检查设备是否由 cdromd 管理。
-e 检查介质是否从设备弹出。
-h-? 显示命令用法的消息。
-M 检查介质是否安装在设备上。
-q 指定静默方式:不打印任何信息或错误消息。
注: 如果 -q-m 标志一起使用,那么安装点将打印到 stdout
-U 检查介质是否未安装在设备上。
DeviceName 指定设备名称。

退出状态

本命令返回以下退出值:

0
回答 = 是。
>0
回答 = 否或错误。

示例

  1. 要向 cdromd 询问 cd0 是否已被管理,请输入:
    cdcheck -a cd0
  2. 要向 cdromd 询问介质是否安装在 cd1 上且不打印任何错误消息,请输入:
    cdcheck -m -q cd1
  3. 要向 cdromd 询问介质是否未安装在 cd1 上,请输入:
          cdcheck -u cd1
  4. 要向 cdromd 询问介质是否不存在于 cd0 上,请输入:
    cdcheck -e cd0
  5. shell 脚本示例:
    DEVICE=$1
    
    if [ cdcheck -a -q "$DEVICE" ]; then
        AUTO_MOUNT="ON"
    else
        AUTO_MOUNT="OFF"
    fi
    
    # Other initializations
    # ...
    
    if [ "$AUTO_MOUNT" = "ON" ]; then
        MOUNT_POINT=`cdcheck -m -q $DEVICE`
    else
        MOUNT_POINT="/tmp/MyProg_$$"
        mount -rv cdrfs $DEVICE $MOUNT_POINT
    fi
    if [ $? -ne 0 ]; then
        echo "mount $DEVICE failed"
        exit 1
    fi
    
    # Now extract data from $MOUNT_POINT...
    # ...
    
    
    # End of processing. Umount the media
    if [ "$AUTO_MOUNT" = "ON" ]; then
        cdeject -q $DEVICE
    else
        unmount $DEVICE
    fi
    if [ $? -ne 0 ]; then
        echo "unmount $DEVICE failed"
        exit 1
    fi