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".
Ich bin ein bisschen verwirrt darüber, was diese Operatoren anders machen, wenn sie in Bash verwendet werden (Klammern, doppelte Klammern, Klammern und doppelte Klammern). [[ , [ , ( , (( Ich habe Leute gesehen, die sie benutzt haben, wenn Aussagen wie diese: if [[condition]] if [condition] if ((condition)) if …
Ich bin verwirrt mit einfachen oder doppelten Klammern. Schau dir diesen Code an: dir="/home/mazimi/VirtualBox VMs" if [[ -d ${dir} ]]; then echo "yep" fi Es funktioniert perfekt, obwohl die Zeichenfolge ein Leerzeichen enthält. Aber wenn ich es in einzelne Klammer ändere: dir="/home/mazimi/VirtualBox VMs" if [ -d ${dir} ]; then echo …
Ich muss die Existenz einer Variablen in einer ifAnweisung überprüfen . Etwas zur Wirkung von: if [ -v $somevar ] then echo "Variable somevar exists!" else echo "Variable somevar does not exist!" Und die naheliegendste Frage war diese , die meine Frage nicht wirklich beantwortet.
Ich kann überprüfen, ob eine Datei existiert und eine symbolische Verknüpfung mit -L besteht for file in *; do if [[ -L "$file" ]]; then echo "$file is a symlink"; else echo "$file is not a symlink"; fi done und wenn es ein Verzeichnis mit -d ist: for file in …
Ich bin immer wieder überrascht, dass sich in dem Ordner /binein [Programm befindet. Heißt das, wenn wir etwas machen wie if [ something ]:? Wenn Sie das [Programm explizit in einer Shell aufrufen, werden Sie nach einer Entsprechung gefragt. ]Wenn Sie die schließende Klammer angeben, scheint es nichts zu tun, …
Ich sehe, ich kann es tun $ [ -w /home/durrantm ] && echo "writable" writable oder $ test -w /home/durrantm && echo "writable" writable oder $ [[ -w /home/durrantm ]] && echo "writable" writable Ich verwende gerne die dritte Syntax. Sind sie in jeder Hinsicht und für alle Negativ- und …
#!/bin/bash INT=-5 if [[ "$INT" =~ ^-?[0-9]+$ ]]; then echo "INT is an integer." else echo "INT is not an integer." >&2 exit 1 fi Was macht das Leading ~im beginnenden regulären Ausdruck?
Gibt es einen Unterschied zwischen diesen beiden. [[ $a == z* ]] und [ $a == z* ] Kann ich ein Beispiel haben, in dem sie unterschiedliche Ausgaben haben würden? Inwiefern unterscheidet sich die Arbeitsweise [[ ]]von [ ]?
Ich versuche zu überprüfen, ob es sich bei einer Eingabe um eine Ganzzahl handelt, und ich habe sie hundert Mal durchgesehen, sehe aber den Fehler darin nicht. Leider funktioniert es nicht, es löst die if-Anweisung für alle Eingaben (Zahlen / Buchstaben) aus read scale if ! [[ "$scale" =~ "^[0-9]+$" …
Ich versuche, eine ifAnweisung zu schreiben, um zu testen, ob Dateien vorhanden sind, die einem bestimmten Muster entsprechen. Befindet sich eine Textdatei in einem Verzeichnis, sollte ein bestimmtes Skript ausgeführt werden. Mein Code derzeit: if [ -f /*.txt ]; then ./script fi Bitte geben Sie einige Ideen; Ich möchte das …
Ich habe die folgende Technik gesehen, die oft bei vielen verschiedenen Shells angewendet wurde, um zu testen, ob eine Variable leer ist: if [ "x$1" = "x" ]; then # Variable is empty fi Gibt es irgendwelche Vorteile bei der Verwendung dieser Option gegenüber der kanonischeren if [ -z "$1" …
Früher war ich mir sicher, dass das Zitieren von Zeichenfolgen immer eine gute Methode ist, um zu vermeiden, dass die Shell sie analysiert. Dann bin ich auf folgendes gestoßen: $ x='(' $ [ "$x" = '1' -a "$y" = '1' ] bash: [: `)' expected, found 1 Beim Versuch, das …
Ich habe ein Verzeichnis mit Absturzprotokollen und möchte eine bedingte Anweisung in einem Bash-Skript verwenden, das auf einem find-Befehl basiert. Die Protokolldateien werden in folgendem Format gespeichert: /var/log/crashes/app-2012-08-28.log /var/log/crashes/otherapp-2012-08-28.log Ich möchte, dass die if-Anweisung nur dann true zurückgibt, wenn ein Absturzprotokoll für eine bestimmte App vorhanden ist, das in den …
Ich fange mit bash an und habe folgendes herausgefunden: if test $first -lt $second then echo $first is lower than $second else if test $first -gt $second then echo $first is higher than $second else echo $first and $second are equals fi fi Um das Skript zu lesen und auszufü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.