Zum Inhalt springen
Melde dich an, um diesem Inhalt zu folgen  

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

Diesen Beitrag teilen


Link zum Beitrag
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.

Diesen Beitrag teilen


Link zum Beitrag
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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Deine Meinung

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich an , um mit Deinem Konto 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.

Melde dich an, um diesem Inhalt zu folgen  

Fachinformatiker.de, 2020 SE Internet Services

fidelogo_small.png

if_icon-6-mail-envelope-closed_314900.pnSchicken Sie uns eine Nachricht!

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

Fachinformatiker.de App


Get it on Google Play

Kontakt

Hier werben?
Oder senden Sie 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