Grundsätzlich möchte ich das erste Vorkommen von -infaus der Parameterliste "herauszupfen" . (Die restlichen Parameter werden an einen anderen Befehl übergeben.) Das Skript, das ich habe, hat die folgende Struktur: #!/bin/sh <CODE> for POSITIONAL_PARAM in "$@" do <CODE> if [ "$POSITIONAL_PARAM" = '-inf' ] then <PLUCK $POSITIONAL_PARAM FROM $@> break …
Ich habe eine Wrapper-Anwendung, in der der Benutzer benutzerdefinierte Optionen angeben muss, die an einen Simulator übergeben werden sollen. Ich möchte jedoch sicherstellen, dass der Benutzer keine anderen Befehle über die Benutzeroptionen eingibt. Was ist der beste Weg, um dies zu erreichen? Beispielsweise. Benutzer bietet: -a -b Anwendung führt aus: …
Ich bin verwirrt, wie optionale Argumente / Flags beim Schreiben eines Bash-Skripts für das folgende Programm eingefügt werden sollen: Das Programm erfordert zwei Argumente: run_program --flag1 <value> --flag2 <value> Es gibt jedoch mehrere optionale Flags: run_program --flag1 <value> --flag2 <value> --optflag1 <value> --optflag2 <value> --optflag3 <value> --optflag4 <value> --optflag5 <value> …
Dies funktioniert auf einer Shell-Eingabeaufforderung (Bash, Dash): [ -z "" ] && echo A || echo B A Ich versuche jedoch, ein POSIX- Shell-Skript zu schreiben. Es beginnt folgendermaßen: #!/bin/sh [ "${#}" -eq 1 ] || echo "Invalid number of arguments, expected one."; exit 1 readonly raw_input_string=${1} [ -z "${raw_input_string}" …
Angesichts dieser Bash: PARMS='-rvu' PARMS+=" --delete --exclude='.git'" echo $PARMS rsync ${PARMS} . ${TARGET} Das Echo zeigt die PARMS-Zeichenfolge wie erwartet an, es wird kein Fehler angezeigt, aber rsync verhält sich im Hintergrund so, als ob die mit + = hinzugefügten Optionen nicht vorhanden wären. Dies funktioniert jedoch wie erwartet: PARMS='-rvu' …
Im Anschluss an: unerwartetes Verhalten bei der Ersetzung von Shell-Befehlen Ich habe einen Befehl, der eine riesige Liste von Argumenten aufnehmen kann, von denen einige legitimerweise Leerzeichen enthalten können (und wahrscheinlich andere Dinge). Ich habe ein Skript geschrieben, das diese Argumente mit Anführungszeichen für mich generieren kann, aber ich muss …
Ich bin auf Ubuntu. Ich habe einige Argumente kopiert (durch Zeilenumbruch getrennt) und kann sie mit xsel so ausdrucken $ xsel arg1 arg2 arg3 arg4 ... Jetzt möchte ich jedes dieser Argumente für einen anderen Befehl verwenden und diesen Befehl so oft ausführen, wie es Argumente gibt. Also habe ich …
Ich versuche herauszufinden, wie eine bestimmte Instanziierung protokolliert werden kann rrdtool, um festzustellen, ob der empfangene Pfad falsch ist. Ich weiß, dass ich die ausführbare Datei in ein Shell-Skript einbinden könnte, das die Parameter protokolliert, aber ich habe mich gefragt, ob es eine kernelspezifische Möglichkeit gibt, dies zu überwachen, möglicherweise …
Ich habe ein Verzeichnis mit Dateien aus dem Jahr 2010 .. Ich möchte alle Dateien löschen, die älter als 500 Tage sind, und habe Folgendes versucht: find /var/log/arc/* -type f -mtime +500 -delete {}\; Aber ich verstehe das: -bash: /usr/bin/find: Argument list too long Wie ich weiß, bedeutet dies, dass …
Ich habe folgende Funktion: bar() { echo $1:$2; } Ich rufe diese Funktion von einer anderen Funktion auf foo. fooselbst heißt wie folgt: foo "This is" a test Ich möchte folgende Ausgabe erhalten: This is:a Das heißt, die Argumente, die barempfangen werden, sollten die gleichen Token sein, an die ich …
Zuerst, um triviale, aber nicht zutreffende Antworten abzuschneiden: Ich kann weder den find+ xargsTrick noch seine Varianten (wie findbei -exec) verwenden, da ich pro Aufruf nur wenige solcher Ausdrücke verwenden muss. Ich werde am Ende darauf zurückkommen. Betrachten wir nun für ein besseres Beispiel: $ find -L some/dir -name \*.abc …
Ich verstehe, dass in einem Shell-Skript "$@"die Skriptargumente erweitert werden und bei Bedarf zitiert werden. Dies leitet beispielsweise die Skriptargumente an gcc weiter: gcc -fPIC "$@" Bei Verwendung der bash Pass-to-stdin Syntax <<<aber "@$"nicht funktioniert , wie ich es erwarten würde. #!/bin/bash cat <<< "$@" Das Skript wird als ./test.sh …
Ich verwende findzum Suchen und Löschen von Sicherungsdateien, möchte jedoch bestimmte Verzeichnisse von der Suche ausschließen. Die Backup - Dateinamen enden in könnten .bck, bak, ~, oder backup. Der MWE-Code (Minimal Working Example) mit nur drei auszuschließenden Verzeichnissen lautet: #! /bin/bash find . -type d \( -path "./.*" -o -path …
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.