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".
Nehmen wir an, wir haben zwei Ganzzahlen in einem Bash-Skript: value1=5 value2=3 Warum müssen wir dann im Falle eines Tests doppelte Anführungszeichen verwenden? Beispielsweise: if [[ "$value1" -eq "$value2" ]] Warum nicht einfach folgendes verwenden? if [[ $value1 -eq $value2 ]] Für mich machen die doppelten Anführungszeichen keinen Sinn.
Beim Schreiben von Skripten schreibe ich meine ifs normalerweise mit der folgenden Syntax, da ich leichter verstehen kann, dass das, was als Nächstes kommt, nicht wahr ist. if [ ! "$1" = "$2" ]; then Andere sagen, dass der Weg unten besser ist if [ "$1" != "$2" ]; then …
Ich habe den folgenden ifBlock in meinem Bash-Skript: if [ ${PACKAGENAME} -eq kakadu-v6_4-00902C ]; then echo "successfully entered if block!!" fi Die Skriptausführung betritt meinen ifBlock nicht, obwohl $PACKAGENAMEgleich ist kakadu-v6_4-00902C. Was mache ich falsch?
Aus Neugier ist es bei einem Bash-Variablen-Vergleich (dessen Wert ist ein integer) möglich, ihn mit einem vordefinierten Wert zu testen, der entweder als intoder als deklariert ist string. Beispielskript : #!/bin/bash f1() { [ "$1" == "1" ] && echo "$FUNCNAME: \"1\" compared as string" } f2() { [[ "$1" …
Wann sollte ich -eqvs =vs verwenden ?== z.B [[ $num -eq 0 ]] [[ $num = 'zzz' ]] Ich habe ein Muster für die Verwendung -eq(und -neusw.) von Zahlen und =Zeichenfolgen beobachtet. Gibt es einen Grund dafür und wann sollte ich verwenden==
Ich benutze Bash unter Linux. Die folgende if-Anweisung ist erfolgreich, aber sollte sie nicht einen Fehlercode zurückgeben? if [[ ■ = [⅕⅖⅗] ]] ; then echo yes ; fi Das Quadrat entspricht NICHT einem der Zeichen, daher verstehe ich nicht, warum ich einen Erfolgscode erhalte. Es ist mir wichtig, die …
In Bash können zwei Ganzzahlen mithilfe eines bedingten Ausdrucks verglichen werden arg1 OP arg2 OP ist ein von -eq, -ne, -lt, -le, -gt, oder -ge. Diese arithmetischen Binäroperatoren geben true zurück, wenn arg1 gleich, nicht gleich, kleiner oder gleich, größer oder größer oder gleich arg2 ist. Arg1 und arg2 können …
Ich verwende das folgende Skript, um zwei Tage zurück zu verschieben, wenn das Skript an zwei Tagen im Jahr ausgeführt wird. Außerdem überprüfe ich den ersten und zweiten Tag jedes Monats und verschiebe zwei Tage zurück. if [$month="01"] && [$day="01"]; then date="$last_month/$yes_day/$last_year" fulldate="$last_month/$yes_day/$last_year" else if [$month="01"] && [$day="02"]; then date="$last_month/$yes_day/$last_year" …
Gibt es für Bash-Versionen vor "GNU bash, Version 4.2" gleichwertige Alternativen für die -vOption des testBefehls? Beispielsweise: shopt -os nounset test -v foobar && echo foo || echo bar # Output: bar foobar= test -v foobar && echo foo || echo bar # Output: foo
Ich bemerkte , während eine andere Frage zu beantworten , dass testund [andere Binärdateien sind, aber die [manpage zieht test‚s. Gibt es neben der Voraussetzung für ein Ende ]einen Unterschied? Wenn nicht, warum sind sie getrennte Binärdateien, anstatt miteinander verbunden zu sein? (Sie sind ebenfalls basheingebaut und bashzeigen auch keinen …
Ich habe gerade einen Weg gefunden, um zu starten, zshwenn ich das bashunter Windows starte https://www.howtogeek.com/258518/how-to-use-zsh-or-another-shell-in-windows-10/ . Es wird empfohlen, folgenden Code am letzten von hinzuzufügen .bashrc. # Launch Zsh if [ -t 1 ]; then exec zsh fi Was [ -t 1 ]bedeutet Ist es nur wahr? Kann ich …
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.