Die Korn-Shell (ksh) ist eine Shell mit erweiterten Skriptfunktionen, die häufig auf kommerziellen Unices und einigen BSD-Systemen zu finden ist, unter Linux jedoch nur selten verwendet wird.
Ich habe gerade ein älteres Shell-Skript (geschrieben in ksh88 unter Solaris) geöffnet und festgestellt, dass sich Folgendes im gesamten Code wiederholt: [ -f $myfile ] && \rm -f $myfile Der entkommende Backslash kommt mir komisch vor. Ich weiß, dass es absichtlich ist, da diese Art der (scheinbar nutzlosen) Flucht im …
Nach meinem Wissen, um die aktuelle Shell zu bestimmen, die wir echo $0in der Shell verwenden. Ich möchte vielmehr, dass mein Skript überprüft, in welcher Shell es ausgeführt wird. Also habe ich versucht, $0das Skript auszudrucken und es gibt den Namen des Skripts zurück, wie er sollte. Meine Frage ist …
Der Ausdruck: $ ksh -c 'for ((i=0;i<10;i++)){ echo $i;}' 0 1 2 3 4 funktioniert einwandfrei Ich kann die Beschreibung dieser Syntax, in der die ersetzt {...;}wird, nicht ; do ...; doneim Handbuch finden. Gibt es eine Referenz im Handbuch? Für welche Shells funktioniert das richtig?
Dies ist der Befehl, den ich verwende, um einige Dateien aufzulisten: find . -name \*.extract.sys -size +1000000c -exec ls -lrt {} \; -rw-r--r-- 1 qa1wrk15 test 1265190 Sep 29 01:14 ./var/can/projs/ar/rep/extract/Sep/29/ar.ARAB-PI_7.20110929.extract.sys -rw-r--r-- 1 qa1wrk15 test 1345554 Sep 29 01:14 ./var/can/projs/ar/rep/extract/Sep/29/ar.ARAB-PI_2.20110929.extract.sys -rw-r--r-- 1 qa1wrk15 test 1370532 Sep 29 01:14 ./var/can/projs/ar/rep/extract/Sep/29/ar.ARAB-PI_3.20110929.extract.sys -rw-r--r-- …
Meine Anforderung besteht darin, eine Differenz von 2 Zeitstempeln in Stunden zu erhalten. Da die Option Datumsunterschied lange dauert, versuche ich, beide Daten in das Format JJJJMMTTHHMMSS zu konvertieren und den Zahlenunterschied zu ermitteln. Ich muss also das aktuelle Datum und die Uhrzeit im selben Format abrufen.
Versuch es: $ a=0 $ let a++ $ echo $? 1 # Did the world just go mad? $ echo $a 1 # Yes, it did. $ let a++ $ echo $? 0 # We have normality. $ echo $a 2 Im Gegensatz dazu: $ b=0 $ let b+=1 $ …
Ich wollte die Unix-Dateien bedingt formatieren, arbeite gerade an einem diffBefehl und wollte wissen, ob es möglich ist, den Text der diffBefehlsausgabe zu formatieren . Beispiel: Übereinstimmende Werte sollten grün angezeigt werden. Nicht übereinstimmende Werte sollten rot angezeigt werden. Angenommen, ich habe zwei Dateien file1und file2und mein Befehl lautet diff …
Gibt es eine Möglichkeit, ein Timeout für eine Root-Shell (z. B. in gnome-terminal) festzulegen, sodass die Shell nach einer bestimmten Zeit ohne Ausgabe von Befehlen beendet wird? Ich suche nach einer Lösung, die in bashFedora und in kshOpenBSD funktioniert .
In einer Bourne-ähnlichen Shell, die Array-Variablen unterstützt, können wir mithilfe von Parsing prüfen, ob es sich bei der Variablen um ein Array handelt. Alle folgenden Befehle wurden nach dem Ausführen ausgeführt a=(1 2 3). zsh: $ declare -p a typeset -a a a=( 1 2 3 ) bash: $ declare …
Gegeben cmd='fun(){ echo "$@"; }; fun $(fun $(fun hi))' Muscheln müssen in der Regel zwei Gabeln bilden, um dies zu erreichen strace-f(){ strace -f "$@" 2>&1; }; for sh in dash bash zsh ksh; do printf "$sh\t" ; strace-f $sh -c "$cmd" |grep -e clone -e fork -c; done außer …
Wie kann ich die Version von ksh sicher aus einem ksh-Skript herunterladen? Ich habe die folgenden Lösungen gesehen : ksh --version echo ${.sh.version} echo $KSH_VERSION Und unter den richtigen Umständen funktioniert jede dieser Funktionen ordnungsgemäß. Ich interessiere mich jedoch für den nicht perfekten Fall. Insbesondere gibt es mehrere Maschinen, mit …
Ich versuche, alle Dateien, die nicht mit dem Buchstaben "a" beginnen, in ksh zu kopieren. Das Kopieren vom Quellcomputer zum Zielcomputer funktioniert einwandfrei : scp -p !(a*) user@machine:/path/directory/. Wenn ich mich jedoch auf dem Zielserver befinde und vom Quellserver kopieren möchte, schlägt Folgendes fehl: scp -p user@machine:/path/!(a*) . Irgendwelche Ideen?
Ein normaler Tar-Befehl tar cvf foo.tar ./foo >foo.out 2>foo.err hat drei Ausgangs-E / A-Streams Daten in foo.tar archivieren Liste der Dateinamen zu STDOUT (umgeleitet in foo.out) Fehlermeldungen an STDERR (umgeleitet in foo.err) Ich kann dann foo.err auf Fehlermeldungen untersuchen, ohne die Liste der Dateinamen durchlesen zu müssen. Wenn ich etwas …
Einmal im Monat einen Cron-Job einrichten, um ein Skript zu starten. Das Skript soll eine Datei jeden Monat drehen, wenn sie zu groß wird, und die alte umbenennen. Wenn eine Datei älter als sechs Monate ist, wollte ich, dass sie gelöscht wird. Ich möchte dieses Skript einmal im Monat ausführen. …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.