___ qstntxt ___

Ich habe kürzlich getopts benutzt und ich habe alles eingerichtet. Ich habe ein Problem. Ich möchte, dass es funktioniert, damit jemand, der kein Argument in die Befehlszeile eingibt, den Hilfetext erhält, z. B .:

%Vor%

Folgendes habe ich im Moment.

%Vor%     
___ answer16120659 ___

Bestätigen Sie die Benutzereingabe mit einem if-Test wie unten.

Die Option %code% von %code% gibt true zurück, wenn die Länge der Zeichenfolge, die auf -z folgt, null ist.

%Vor%     
___ tag123linux ___ LINUX FRAGEN MÜSSEN PROGRAMMIEREN VERWANDT SEIN. Verwenden Sie dieses Tag nur dann, wenn sich Ihre Frage auf das Programmieren mit Linux-APIs oder das Linux-spezifische Verhalten bezieht, nicht nur, weil Sie Ihren Code unter Linux ausführen. Wenn Sie Linux-Unterstützung benötigen, können Sie https://unix.stackexchange.com oder https://askubuntu.com ausprobieren ___ answer16120635 ___

Versuchen Sie es in Ihrem Skript:

%Vor%

Die Codezeile ist die verkürzte boolesche Version von

%Vor%

%code% sind alle Argumente des Skripts

%Vor%

ist eine Abkürzung für

%Vor%

Siehe Ссылка

    
___ answer16120940 ___

Gilles Quenots Antwort funktioniert großartig und ist sehr prägnant; Wenn Sie nach Lösungen suchen, die die Absicht ausdrücklicher zum Ausdruck bringen , können Sie diese versuchen, die auf der Anzahl der Parameter %code% :

basieren %Vor%

Alternativ, mit arithmetischen Ausdrücken:

%Vor%

Schließlich, eine Kurzschrift, die darauf beruht, dass 0 als falsch ausgewertet wird, und jede Zahl ungleich Null als wahr gilt:

%Vor%

William Purklell bietet eine weitere Variante, die deskriptiv und POSIX-konform ist:

%Vor%

%code% / %code% ist ein POSIX-Dienstprogramm / eingebaut, während die ähnliche %code% Bedingung %code% -spezifisch ist (wie auch %code% ).
Im Allgemeinen bietet %code% s %code% jedoch mehr Funktionen und weniger Überraschungen als %code% / %code% .

    
___ tag123bash ___ Für Fragen zu Skripten, die für die Bash-Befehlsshell geschrieben wurden. Für Shell-Skripte mit Fehlern, überprüfen Sie diese bitte mit dem Shellcheck-Programm (oder im web-Shellcheck-Server unter https://shellcheck.net), bevor Sie hier posten. Fragen zur interaktiven Nutzung von Bash sind bei Super Usern eher Thema als bei Stack Overflow. ___

7

Ich habe kürzlich getopts benutzt und ich habe alles eingerichtet. Ich habe ein Problem. Ich möchte, dass es funktioniert, damit jemand, der kein Argument in die Befehlszeile eingibt, den Hilfetext erhält, z. B .:

%Vor%

Folgendes habe ich im Moment.

%Vor%     
user2298964 20.04.2013, 12:55
quelle

3 Antworten

9

Bestätigen Sie die Benutzereingabe mit einem if-Test wie unten.

Die Option -z von test gibt true zurück, wenn die Länge der Zeichenfolge, die auf -z folgt, null ist.

%Vor%     
suspectus 20.04.2013 13:00
quelle
6

Versuchen Sie es in Ihrem Skript:

%Vor%

Die Codezeile ist die verkürzte boolesche Version von

%Vor%

$@ sind alle Argumente des Skripts

%Vor%

ist eine Abkürzung für

%Vor%

Siehe Ссылка

    
Gilles Quenot 20.04.2013 12:57
quelle
5

Gilles Quenots Antwort funktioniert großartig und ist sehr prägnant; Wenn Sie nach Lösungen suchen, die die Absicht ausdrücklicher zum Ausdruck bringen , können Sie diese versuchen, die auf der Anzahl der Parameter $# :

basieren %Vor%

Alternativ, mit arithmetischen Ausdrücken:

%Vor%

Schließlich, eine Kurzschrift, die darauf beruht, dass 0 als falsch ausgewertet wird, und jede Zahl ungleich Null als wahr gilt:

%Vor%

William Purklell bietet eine weitere Variante, die deskriptiv und POSIX-konform ist:

%Vor%

test / [ ... ] ist ein POSIX-Dienstprogramm / eingebaut, während die ähnliche [[ ... ]] Bedingung bash -spezifisch ist (wie auch (( ... )) ).
Im Allgemeinen bietet bash s [[ ... ]] jedoch mehr Funktionen und weniger Überraschungen als test / [...] .

    
mklement0 20.04.2013 13:33
quelle

Tags und Links