Zum Inhalt springen

Yes / No abfrage Shell-Scripting


Empfohlene Beiträge

Hey ho,

ich brauch Hilfe:

#!/bin/ksh

##############################

#Tapes einlesen, unter bla.ksh speichern #

##############################

ioscan >> /dev/null;

ioscan -funNC tape | grep 4-SCSI > bla.ksh;

#################################

#Anzahl der Tapes mit Status CLAIMED ermitteln #

################################

claimed=$(cat bla.ksh | grep CLAIMED | wc -l)

echo "${claimed} WWNs have Status CLAIMED"

###############################

#Eintraege kleiner 14, alle HW-Adressen mit #

#Status NO_HW in foo.ksh speichern #

#############################

if [ "$claimed" -lt "14" ]; then

cat bla.ksh | grep NO_HW | cut -c14-31 > foo.ksh;

echo "WWNs are missing"

###############################

#Zeile fuer Zeile HW-Adressen auslesen #

#############################

cat foo.ksh | while read line;

do

hwadress=$(echo $line)

echo "${hwadress} zugewiesen"

################################################

#wwids ersetzen Abfrage bejahen , in answer.txt steht nur ein y #

##############################################

scsimgr replace_wwid -H $hwadress < answer.txt

done

else

echo "exit"

fi

Im Fettgedruckten Befehl wird auf der Kommandozeile gefragt, wollen Sie wirklich überschreiben ... und via answer.txt soll dann ein y (yes) automatisch übergeben werden, Befehl ausgeführt werden usw.

Der Befehl wird jedoch nicht ausgeführt, die Frage (ja, nein) erscheint zwar, doch dann bricht das Programm ab.

Woran kann das liegen?:upps

Bearbeitet von SickOfLife88
Link zu diesem Kommentar
Auf anderen Seiten teilen

Eine Möglichkeit wäre dass der Befehl nicht von STDIN liest sondern vom Terminal. Solche Befehle haben meist einen guten Grund dafür (prominentestes Beispiel dürfte SSH sein).

Ein strace -e open,read auf einen ssh-connect unter Linux zeigt das:

open("/dev/tty", O_RDWR|O_LARGEFILE)    = 5

open("/dev/tty", O_RDWR|O_LARGEFILE)    = 5

read(5, ...
Ein strace -e open,read auf ein rm -i dagegen:
read(0, ...

Möglicherweise bietet der Befehl eine --force, --batch oder ähnlich Option an die eine Abfrage dieser Art unterdrückt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hey,

vielen vielen Dank :D.

Weißt du dann auch, warum die Variablenzuweisung (fettgedruckt) nicht funktioniert, seitdem ich SSH benutze? Sorry, is auch die letzte Frage

#!/usr/bin/ksh

##########################

#Server wechseln #

#########################

echo "###########################################"

for i in `/local/hp/hostlist.sh -1 -g HPUX11`

do

echo $i

ssh $i "

##############################

#Tapes einlesen, unter bla.ksh speichern #

##############################

ioscan >> /dev/null

ioscan -funNC tape | grep 4-SCSI > bla.ksh

#################################

#Anzahl der Tapes mit Status CLAIMED ermitteln #

################################

claimed=$(cat bla.ksh | grep CLAIMED | wc -l)

echo "${claimed} WWNs have Status CLAIMED"

###############################

#Eintraege kleiner 14, alle HW-Adressen mit #

#Status NO_HW in foo.ksh speichern #

#############################

if [ "$claimed" -lt "14" ]; then

cat bla.ksh | grep NO_HW | cut -c14-31 > foo.ksh

##############################

#Zeile fuer Zeile HW-Adressen auslesen #

#############################

cat foo.ksh | while read line

do

hwadress=${line}

echo "${hwadress} zugewiesen"

#############################

#wwids ersetzen Abfrage bejahen #

############################

scsimgr replace_wwid -H $hwadress < answer.txt

if [ ${claimed} -lt 14 ]; then

break

fi

done

else

echo "exit"

fi

"

echo "********"

done

Link zu diesem Kommentar
Auf anderen Seiten teilen

Deine Meinung

Schreibe jetzt und erstelle anschließend ein Benutzerkonto. Wenn Du ein Benutzerkonto hast, melde Dich bitte an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

 Teilen

Fachinformatiker.de, 2021 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung