Hier geht es um das Unix-Dienstprogramm "test", das auch als "[" aufgerufen wird, oder um die Shell-Syntaxvariante [[…]]. Verwenden Sie bei Fragen zum Testen von Software und Setups das Tag "testing".
Angenommen, ich möchte die gccVersion vergleichen , um festzustellen, ob auf dem System die Mindestversion installiert ist oder nicht. Um die gccVersion zu überprüfen , habe ich Folgendes ausgeführt gcc --version | head -n1 | cut -d" " -f4 Die Ausgabe war 4.8.5 Also schrieb ich eine einfache ifAnweisung, um …
Von man bash: CONDITIONAL EXPRESSIONS [...] -a file True if file exists. [...] -e file True if file exists. Was ist also der Unterschied zwischen [ -a $FILE ]und [ -e $FILE ], falls vorhanden? Wenn es keinen wirklichen Unterschied gibt, warum existieren zwei Flags für denselben Zweck?
Die integrierten testund [Dienstprogramme haben in den meisten Shells die Tests -nt("neuer als") und -ot("älter als"), auch wenn die Shell im "POSIX-Modus" ausgeführt wird (gilt auch für die gleichnamigen externen Dienstprogramme auf dem Systeme, auf die ich Zugriff habe). Diese Tests dienen zum Vergleichen von Änderungszeitstempeln für zwei Dateien. Ihre …
Stéphane Chazelas schrieb: ein paar Regeln wie Zitieren Sie immer Variablen Verwenden Sie niemals den Operator -aoder -o(verwenden Sie mehrere [Befehle und die Operatoren &&und ||Shell). Machen Sie [zuverlässig mit POSIX-Shells. Warum "niemals den Operator -aoder verwenden -o"? Wie kann ich "mehrere [Befehle und die &&und ||Shell-Operatoren verwenden"?
Ich habe aus einer Anweisung gelesen, am letzten Tag des Monats ein Skript zu planen: Hinweis: Der kluge Leser fragt sich möglicherweise, wie Sie einen Befehl festlegen können, der am letzten Tag eines jeden Monats ausgeführt wird, da Sie den Wert für den Tag des Monats nicht so einstellen können, …
Wenn ich eine Datei als nicht privilegierter Benutzer erstelle und den Berechtigungsmodus auf ändere 400, wird sie von diesem Benutzer korrekt als schreibgeschützt angesehen: $ touch somefile $ chmod 400 somefile $ [ -w somefile ] && echo rw || echo ro ro Alles ist gut. Aber dann kommt die …
Ich habe ein Shell-Skript namens 'teleport.sh' wie folgt: if [ $1="1" ]; then shift mv "$@" ~/lab/Sun elif [ $1="2" ]; then shift mv "$@" ~/lab/Moon elif [ $1="3" ]; then shift mv "$@" ~/lab/Earth fi Wenn ich ausführe: sh teleport.sh 2 testfile Dies testfilewird in das ~/lab/SunVerzeichnis verschoben , …
Problem: Ich muss überprüfen, ob heute Donnerstag ist, und basierend auf dem Ergebnis dieser Bedingung verschiedene Aktionen ausführen. Ich habe zwei verschiedene Ansätze ausprobiert: Den Tagesnamen erhalten: DAYOFWEEK=$(date +"%a") echo DAYOFWEEK: $DAYOFWEEK if ["$DAYOFWEEK" == "Thu"]; then echo YES else echo NO fi Den Tag bekommen Num: DAYOFWEEK=$(date +"%u") echo …
Ich habe ein Skript von mir mit Checkbashisms überprüft und die folgenden Warnungen erhalten: possible bashism in check_ssl_cert line 821 (test -a/-o): if [ -n "${ALTNAMES}" -a -n "${COMMON_NAME}" ] ; then In Abschnitt 4.62.4 der POSIX-Spezifikationen finde ich Primär -a Primär Führt eine Binärdatei und die Ergebnisse von Primär …
Ich bekomme, was ich erwartet habe, wenn ich das mache in bash: [ "a" == "a" ] && echo yes Es gab mir yes. Aber wenn ich das mache zsh, bekomme ich folgendes: zsh: = not found Warum verhält sich derselbe Befehl ( /usr/bin/[) in verschiedenen Shells unterschiedlich?
Ich führe ein Skript aus, das davon abhängt, dass das Netzwerk aktiv ist und eine Netzwerkfreigabe bereitgestellt wird. Das Skript wird bei der Anmeldung ausgeführt (was automatisch nach dem Start erfolgt). Das Problem ist, dass ich zum Zeitpunkt der Ausführung des Skripts normalerweise noch keine IP-Adresse (DHCP) habe. Im Moment …
Bei der Prüfung man testsehe ich, dass unter Synopse für testdie Möglichkeiten test EXPRESSIONund test. Was [ EXPRESSION ], [ ] and [OPTIONbedeutet unten? Warum sind die Klammern leer und warum [OPTIONfehlt eine Klammer? Kann das jemand für mich interpretieren? NAME test - check file types and compare values SYNOPSIS …
In der bash sind [[ $variable ]]und [[ -n $variable ]]völlig gleichwertig? Nach der folgenden Ausgabe scheint dies der Fall zu sein, aber ich sehe beide Verwendungsformen in Shell-Skripten. $ z="abra" $ [[ $z ]] $ echo $? 0 $ [[ -n $z ]] $ echo $? 0 $ z="" …
Wenn ich einige Befehle ausführen möchte, deren Variablen nicht festgelegt sind, verwende ich: if [[ -z "$a" || -z "$v" ]] then echo "a or b are not set" fi Die gleiche Syntax funktioniert jedoch nicht -v. Ich muss Folgendes verwenden: if [[ -v a && -v b ]] then …
Als erste Linie Java - Programmierer, finde ich die bash if- thenKonstrukt ziemlich verwirrend, vor allem in Bezug auf Leerzeichen. Kann jemand erklären, warum der erste funktioniert, aber nicht der zweite oder dritte? #works if [ -n $1 ]; then echo "parameterized"; fi #output: ./links: Zeile 1: [-n: Kommando nicht …
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.