micneu
Goto Top

Prüfen ob cdrom gemountet

Hallo Leute,

wie kann ich in der bash eine if abfrage machen die prüft ob eine cd/dvd gemountet ist?

ich habe schon mal ein wenig probiert:
mount /media/cdrom0 | [ $ -gt 0 ] ; echo "cdrom nicht gemountet"  
hier habe ich mir auch eine if abfrage gebaut nur weiß ich nicht wie ich das prüfe
#!/bin/sh
if [ ....... ]; then
        echo "CDROM nicht gemountet"  
        sleep 5
        break
else
        echo " cdrom ist gemountet"  
fi;
hoffe mir kann jemand helfen...
oder kann ich irgend wie prüfen ob ein medium eingelegt ist?

Content-Key: 130383

Url: https://administrator.de/contentid/130383

Printed on: April 24, 2024 at 08:04 o'clock

Member: TsukiSan
TsukiSan Nov 27, 2009 at 13:58:08 (UTC)
Goto Top
Hallo micneu,
weiß nicht, ob ich dich richtig verstehe.?
Falls du abfragen möchtest, ob etwas in deinem CD-Laufwerk eingelegt ist, kannst du folgenden Script in Batch verweden:
@echo off
set LW=H:
rem Initialstate hermitteln
dir %LW% >NUL 2>NUL
set LWState=%errorlevel%
rem prüfung in Schleife (im 5s Intervall)
:loop
ping -n 5 localhost >NUL
dir %LW% >NUL 2>NUL
if %errorlevel% neq %LWState% (
set LWState=%errorlevel%
call:StCh%errorlevel%%LWState%
)
goto:loop

:StCh01 & rem CD eingelegt
echo CD wurde eingelegt
goto:loop

:StCh10 & rem CD ausgeworfen
echo CD wurde ausgeworfen
goto:loop

Gruss
Tsuki
Member: kruemeltee
kruemeltee Nov 30, 2009 at 20:44:15 (UTC)
Goto Top
@ TsukiSan: ich glaub Du hast Batch mit bash verwechselt. micneu will ein bash Programm (Linux Kommandozeile) haben, welches ein wenig anders ist als batch Programmierung unter Windows, aber trotzdem Danke face-smile

@ micneu:
Du könntest folgendes machen, einen normalen "Befehl" zum prüfen ob /dev/hdc bereits gemountet ist einer Variablen zuweisen und prüfen, ob diese leer ist, oder nicht,
#!/bin/bash

# Variable mounted "leer" setzen 
mounted=""  
# Mounted ggf. die Zeile aus "mount" übergeben, die /dev/hdc beinhaltet 
mounted=$(mount | grep "/dev/hdc")  

# prüfen ob die Variable leer ist
if [ ! "$mounted" = "" ]; then  
  echo "cd-rom Laufwerk wurde bereits gemountet"  
fi

gibt bestimmt noch bessere Lösungen, auf die Schnelle ist mir allerdings keine eingefallen!

Gruß
kruemeltee
Member: TsukiSan
TsukiSan Nov 30, 2009 at 23:58:33 (UTC)
Goto Top
ach, ich mag Montage nicht.
Du hast natürlich recht, ich hab am Thema vorbei geschrieben und nicht darauf geachtet, dass es hier um Bash geht.
Ich lass das Script aber trotzdem stehen, vielleicht braucht's mal jemand in Batch.

Gruss
Tsuki
Member: micneu
micneu Dec 02, 2009 at 18:47:17 (UTC)
Goto Top
danke, habe auch eine lösung....

#!/bin/sh
# Variablen deklarieren
SOURCE="/media/cdrom0"  
TEST1=$(less /etc/mtab | grep -c cdrom0)
TEST2="1"  

# Prueft ob CD gemountet ist
if [ "$TEST1" = "$TEST2" ]; then  
    echo " cdrom ist gemountet"  
else
    echo "CDROM nicht gemountet"  
    eject;
fi;
Member: kruemeltee
kruemeltee Dec 02, 2009 at 19:19:39 (UTC)
Goto Top
oh, über die mtab ... auch nicht schlecht!
Aber die Zeile mit "SOURCE" kannst Du Dir sparen face-smile

Trotzdem fein, daß Du auch eine Lösung hast!

Gruß kruemeltee
Member: micneu
micneu Dec 02, 2009 at 20:09:06 (UTC)
Goto Top
ja da gebe ich dir recht die zeile 03. hätte ich rausnehmen können
ist noch aus meinem script, da brauche ich sie....

gruß Michael