Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Linux

GELÖST

variable setzen und prüfen CSH

Mitglied: ottscho

ottscho (Level 2) - Jetzt verbinden

01.07.2008, aktualisiert 08.07.2008, 7669 Aufrufe, 5 Kommentare

Hallo zusammen,

ich versuche mich gerade etwas an Scripten mit der CSH in Verbindung mit einer GUI (Zenity).
Ich habe hier ein Script, und würde gerne den Autput von Zenity direkt in eine Variable schreiben, und nicht erst in eine Datei und dann mit tail die Datei lesen und in eine Varibale schreiben.
Außerdem würde ich gerne die Variable auf Inhalt prüfen und bekomme es nicht hin. Ich denke es liegt an dem einlesen mit trail.

Bitte gebt mir mal einen Tipp:

[code]
#!/bin/tcsh
set echo

LftNr:
#Laufkartennummer festlegen
zenity --entry --title="2D Barcode PRINTAR" --text="Geben Sie bitte die LfkNummer an:" --entry-text="" >> /tmp/lftnr
set strLftNr = `tail -l /tmp/lftnr`
rm -f /tmp/lftnr
echo ""$strLftNr""

Index:
#Index Wert festlegen
zenity --entry --title="2D Barcode PRINTAR" --text="Geben Sie bitte einen Index Wert an:" --entry-text="" >> /tmp/index
set strIndex = `tail -l /tmp/index`
rm -f /tmp/index
echo ""$strIndex""

#Lagenbezeichnung festlegen
zenity --list --radiolist --width=400 --height=150 --title "2D Barcode PRINTAR" --text "Wählen Sie bitte die Lagenkennzeichnung aus:" --column=" " --column Variable --column Beschreibung \
"\" TWE "Bauteilseite = B / Lötseite = L" \
"\" PHG "Bauteilseite = LCS / Lötseite = LBS" \
/tmp/date
set strLage = `tail -l /tmp/lage`
rm -f /tmp/lage
echo ""$strLage""

#Datumsforamt festlegen
zenity --list --radiolist --width=400 --height=200 --title "2D Barcode PRINTAR" --text "Wählen Sie bitte das Datumformat aus:" --column=" " --column Variable --column Beschreibung \
"\" %W%y "Kalenderwoche / Jahr 2-stellig" \
"\" %W%Y "Kalenderwoche / Jahr 4-stellig" \
"\" %x "Monat/Tag/Jahr 2-stellig" \
/tmp/date
set strDate = `tail -l /tmp/date`
rm -f /tmp/date
echo ""$strDate""

#Reihefolge festlegen
zenity --list --radiolist --width=400 --height=325 --title "2D Barcode PRINTAR" --text "Wählen Sie bitte die Reihenfolge aus:" --column=" " --column Variable --column Beschreibung \
"\" ULC_RIGHT "LinksOben->RechtsUnten - Horizontal" \
"\" ULC_DOWN "LinksOben->RechtsUnten - Vertiakl" \
"\" DLC_RIGHT "LinksUnten->RechtsOben - Horizontal" \
"\" DLC_UP "LinksUnten->RechtsOben - Vertiakl" \
"\" DRC_LEFT "RechtsUnten->LinksOben - Horizontal" \
"\" DRC_UP "RechtsUnten->LinksOben - Vertiakl" \
"\" URC_LEFT "RechtsOpen->LinksUnten - Horizontal" \
"\" URC_DOWN "RechtsOebn->LinksUnten - Vertiakl" \
/tmp/counter
set strCounter = `tail -l /tmp/counter`
rm -f /tmp/counter
echo ""$strCounter""
[/code]
Mitglied: 1bgks6
06.07.2008 um 05:02 Uhr
Zumindest solltest Du nie ohne weitere Prüfung an eine Datei mit festem Namen schreiben. Falls mehrere Instanzen des Scripts laufen schreiben die bunt durcheinander in die Datei. Üblich wäre, die zwangsläufig zur Laufzeit eineindeutige PID der jeweiligen Instanz für den Dateinamen zu verwenden. Natürlich ist grundsätzlich blödsinnig, auf der Disk rumzuschreiben, wo Pipes verfügbar sind.

Was hält Dich davon ab, ganz einfach den Umweg über die Dateiausgabe zu eliminieren und den stdout des zenity direkt an die Variable zu übergeben?

01.
set strSchnick = `zenity --schnack`
Was mißglückt Dir beim Testen der Variablen auf Inhalt? Auf welchen Inhalt? Was genau gibt zenity zurück?
Bitte warten ..
Mitglied: ottscho
07.07.2008 um 07:49 Uhr
ich hatte es schon so oft auf diese Methode "set strSchnick = `zenity --schnack`" versucht, aber es ging nie. Eben hat es funktioniert. Vllt habe ich aus meiner Dummheit die ` Zeichen in die falsche Richtung gemacht... Danke dir

Nun muss ich überprüfen, ob der User überhaupt was angegeben hat, oder ob die Varibale leer ist.
Die habe ich nun mit if ($var != "") gemacht.


Weißt du zufällig noch, wo die CSH die Rückgabewerte speichert? Bei der BASH ist ist $?
Ich muss ja irgendwie herausfinden, wenn der User abbrechen drückt.

Danke
Gruß ottscho
Bitte warten ..
Mitglied: 1bgks6
07.07.2008 um 14:39 Uhr
Der Exit-Status des zuletzt ausgeführten Kommandos steht bei CSH in der vordefinierten Umgebungsvariablen »status«. Aufzupassen ist, welches das tatsächlich zuletzt ausgeführte Kommando ist: hier ist es nicht zenity, sondern set.

Möglichkeiten*:

a) Die Nutzereingaben sind immer nur eine Auswahl aus den mir bekannten Vorgaben:
01.
set strSchnick = `zenity --text 'Nie ABBRUCH' || echo 'ABBRUCH'` 
02.
if( $strSchnick == 'ABBRUCH' ) then schießmichtot
b) Standardlösung: Abbruch der Eingabemaske bricht die gesamte Programmausführung ab (oder bei entsprechender Vorbreitung die jeweilige Subshell)*:
01.
set strSchnick = `zenity --schnack || exit $status`
*) Bei der (b)-Lösung springt das exit schlimmstenfalls lediglich aus der ``-Subshell raus. Sind nur strukturelle Vorschläge, ich kann nicht testen. Besserenfalls scheitert das set sowieso bzw. termininert mit einem von 0 abweichenden Status, wenn zenity wegen Nutzerabbruch mit einem von 0 abweichenden terminiert und dann auch keinen Leer-String auf stdout rückgib.
Bitte warten ..
Mitglied: ottscho
07.07.2008 um 16:06 Uhr
danke, für deine ausführliche beschreibung.

leider geht es nicht. ich habe folgendes versucht:
#Laufkartennummer festlegen
set strLftNr = `zenity --entry --title="2D Barcode PRINTAR" --text="Geben Sie bitte die LfkNummer an:" --entry-text="${strLftNr}" --window-icon=$strIcon || goto test`

ganz am ende der datei habe ich dann ein test:
leider kommt hier die meldung;
Script message: zenity --entry --title=2D Barcode PRINTAR --text=Geben Sie bitte die LfkNummer an: --entry-text=1654322 --window-icon=/usr/share/pixmaps/accessx-status-applet/sticky-super-latched.png
Script message: goto test
Script message: test: label not found.

Ebenso habe ich es einfach nur mit der exit versucht, hier kommt folgendes, aber es passiert nichts:
Script message: zenity --entry --title=2D Barcode PRINTAR --text=Geben Sie bitte die LfkNummer an: --entry-text=1654322 --window-icon=/usr/share/pixmaps/accessx-status-applet/sticky-super-latched.png
Script message: exit

alles etwas sehr merkwürdig.
falls dich das ganze script interessiert, hier findest du es:
www.tw-elektric.de/temp/Printar_2D_Barcode.csh

Gruß Ottscho
Bitte warten ..
Mitglied: ottscho
08.07.2008 um 15:29 Uhr
habe es nun raus, so geht es:

set strSchnick = `zenity --schnack` || exit
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Variable auf Inhalt prüfen
gelöst Frage von PinkFLuffyUnicornBatch & Shell1 Kommentar

Hi, ich sitze jetzt schon den halben tag daran eine if schleife zu erstellen die mir sagt ob Variable ...

Batch & Shell
Nummer suchen und als Variable setzen
gelöst Frage von Nick.BBatch & Shell7 Kommentare

Ich stehe vor einem Problem und hoffe es kann mir jemand helfen. Ich habe eine Textdatei in der eine ...

Batch & Shell
Variable setzen können während timeout
Frage von DontFlameMeITryMyBestBatch & Shell3 Kommentare

Guten Tag miteinander. Ich habe nun heute mein so ziemlich erstes Programm mit Batch geschrieben. Es soll für mich ...

Batch & Shell
Teil eines Strings als Variable setzen
gelöst Frage von tHe-jAyBatch & Shell2 Kommentare

Hallo, für ein kleines Batch-Script benötige ich einen Servicenamen als Variable. Den Servicenamen frage ich über folgenden Befehl ab: ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 1 TagLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 1 TagTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 1 TagSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 1 TagSicherheit9 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Batch & Shell
Meltdown Microsoft Prüf Script - .zip Datei leider leer
gelöst Frage von MasterBlaster88Batch & Shell13 Kommentare

Hallo zusammen, ich patche gerade unsere Windows Server bzgl. der Meltdown Lücke. Patch vorhanden, Reg Keys gesetzt Um das ...

Batch & Shell
Shell-Skript - Syntax error: Unterminated quoted string
Frage von newit1Batch & Shell13 Kommentare

Hallo Ich schreibe ein Skript das eine CSV-Datei in eine mySQL Datenbank schieben soll. Bekomme nach start des Skrips ...

Monitoring
VPN Performance Zyxel-Fritte
gelöst Frage von HenereMonitoring13 Kommentare

Servus, nachdem ihr mir ja schon so gut helfen konntet, was das VPN zwischen Zyxel USG60W und Fritte 7490 ...

Sicherheit
Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen
Information von FrankSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...