Es gibt zwei Syntaxen für die Befehlssubstitution: mit Dollar-Klammern und mit Backticks. Laufen top -p $(pidof init)und top -p `pidof init`gibt die gleiche Ausgabe. Gibt es zwei Möglichkeiten, dasselbe zu tun, oder gibt es
Fragen zur Ersetzung von Shell-Befehlen (wie $ (Befehl) oder `Befehl`), ihrem Mechanismus, der korrekten Syntax usw. Nicht zu verwechseln mit Aliasing.
Es gibt zwei Syntaxen für die Befehlssubstitution: mit Dollar-Klammern und mit Backticks. Laufen top -p $(pidof init)und top -p `pidof init`gibt die gleiche Ausgabe. Gibt es zwei Möglichkeiten, dasselbe zu tun, oder gibt es
In meiner Bash-Umgebung verwende ich Variablen, die Leerzeichen enthalten, und diese Variablen bei der Befehlssubstitution. Leider kann ich die Antwort auf SE nicht finden. Wie zitiere ich meine Variablen richtig? Und wie soll ich es machen, wenn diese verschachtelt sind? DIRNAME=$(dirname...
Ich habe einen Befehl, der Daten an stdout ( command1 -p=aaa -v=bbb -i=4) ausgibt . Die Ausgabezeile kann den folgenden Wert haben: rate (10%) - name: value - 10Kbps Ich möchte diese Ausgabe aufgreifen, um diese 'Rate' zu speichern (ich denke, Pipe wird hier nützlich sein). Und schließlich möchte...
Ich möchte eine Protokolldatei für ein Cron-Skript erstellen, dessen Protokolldateiname die aktuelle Stunde enthält. Dies ist der Befehl, den ich versucht habe: 0 * * * * echo hello >> ~/cron-logs/hourly/test`date "+%d"`.log Leider bekomme ich diese Meldung, wenn das läuft: /bin/sh: -c: line...
#!/bin/bash function0() { local t1=$(exit 1) echo $t1 } function0 echogibt leeren Wert aus. Ich erwartete: 1 Warum wird der t1Variable nicht der Rückgabewert des Befehls exit zugewiesen -
Ich probiere den Befehl aus $ b=5; echo `$b`; -bash: 5: command not found Aber es wird nicht 5 gedruckt, wie es soll. Was vermisse ich hier? Was bedeutet `(backquote / backtick) in Befehlen? scheint zu sagen, dass `die Befehle ausgewertet und durch die Ausgabe ersetzt
Ich weiß, dass ich dieses Problem auf mehrere Arten lösen kann, aber ich frage mich, ob es eine Möglichkeit gibt, dies nur mit Bash-Integrationen zu tun, und wenn nicht, welche Methode am effizientesten ist. Ich habe eine Datei mit Inhalten wie AAA B C DDD FOO BAR womit ich nur meine, dass es...
Wie im folgenden Beispiel und wie in meiner letzten Frage In Bash, wo ist das nachgestellte Newline-Zeichen geblieben? Ich möchte wissen, "warum" es passiert x="$(echo -ne "a\nb\n")" ; echo -n "$x" | xxd -p # Output is: 610a62 # The trailing newline from the 'echo' command # has been "deleted" by...
Diese Frage wurde von Server Fault migriert, da sie unter Unix und Linux Stack Exchange beantwortet werden kann. Vor 2 Jahren migriert . Eine einfache Installationsmethode für Docker (zum Beispiel) ist: curl -sSL https://get.docker.com/ | sh Ich habe jedoch auch einige gesehen, die so aussehen...
Betrachten Sie dieses Skript: #!/bin/bash function start { leafpad & echo $! } PID=$(start) echo "PID is $PID" Das Skript wird erst fortgesetzt, wenn der Leafpad-Prozess beendet ist, obwohl es sich um einen Hintergrundprozess handelt. Warum ist das? Ist es möglich, einen Hintergrundprozess von...
Eine StackOverflow- Antwort mit> 3.5K Stimmen enthält diesen Einzeiler für die Zuordnung zum DIRVerzeichnis des aktuellen Bash-Skripts: DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" Ich bin verwirrt über die geschachtelten Anführungszeichen. Soweit ich das beurteilen kann,...
In dieser Frage meldet jemand ein Problem bei der Verwendung eines Here-Dokuments mit einem in Anführungszeichen gesetzten Begrenzungswort innerhalb der $(...)Befehlsersetzung , wobei ein Backslash \am Ende einer Zeile innerhalb des Dokuments die Fortsetzung von Zeilen mit Zeilenumbrüchen auslöst ,...
Es ist höchste Zeit, dieses Rätsel zu lösen, das mich seit Jahren beschäftigt ... Ich habe dies von Zeit zu Zeit getroffen und dachte, das ist der richtige Weg: $(comm "$(arg)") Und dachte, meine Ansicht wurde stark von der Erfahrung gestützt. Aber ich bin mir nicht mehr so sicher. Shellcheck...
Ich versuche, ein Skript mit einer Liste von Dateinamen aufzurufen, die von gesammelt wurden find. Nichts Besonderes, nur so etwas: $ myscript `find . -name something.txt` Das Problem ist, dass einige der Pfadnamen Leerzeichen enthalten, sodass sie bei der Argumenterweiterung in zwei ungültige...
Ich verstehe, dass die modernere $(...)Befehlssubstitutionssyntax der altbasierten Syntax vorgezogen wird `, da die Verschachtelung und die Escape-Syntax einfacher und weniger fehleranfällig sind. Außerdem scheinen die meisten /bin/shMuscheln im modernen Gebrauch Folgendes zu unterstützen $(…):...
Der folgende Code beschreibt die Situation am besten. Warum gibt die letzte Zeile kein Zeilenumbruchzeichen aus? Die Ausgabe jeder Zeile wird im Kommentar angezeigt. Ich benutze GNU Bash, Version 4.1.5 echo -n $'a\nb\n' | xxd -p # 610a620a x=$'a\nb\n' ; echo -n "$x" | xxd -p # 610a620a echo -ne...
for k in {0..49}; do a=$(($((2*$k))+1)); echo $a; done Hallo, ich brauche einen vereinfachten Ausdruck für die dritte Zeile, vielleicht einen, der keine Befehlsersetzung
Die Beantwortung dieser Frage veranlasste mich, eine andere Frage zu stellen: Ich dachte, die folgenden Skripte tun dasselbe und die zweite sollte viel schneller sein, da die erste verwendet cat, die die Datei immer wieder öffnen muss, aber die zweite nur die Datei öffnet einmal und gibt dann nur...
Ich versuche, grep gegen eine Liste von ein paar hundert Dateien auszuführen: $ head -n 3 <(cat files.txt) admin.php ajax/accept.php ajax/add_note.php Obwohl ich nach einer Zeichenfolge greife, von der ich weiß, dass sie in den Dateien enthalten ist, werden die Dateien nicht durchsucht: $ grep...
Nach diesem Referenzhandbuch : -E (auch -o errtrace) Wenn diese Option aktiviert ist, werden alle Traps in ERR von Shell-Funktionen, Befehlsersetzungen und Befehlen übernommen, die in einer Subshell-Umgebung ausgeführt werden. Die ERR-Falle wird in solchen Fällen normalerweise nicht vererbt. Ich...