Als «command-substitution» getaggte Fragen

Fragen zur Ersetzung von Shell-Befehlen (wie $ (Befehl) oder `Befehl`), ihrem Mechanismus, der korrekten Syntax usw. Nicht zu verwechseln mit Aliasing.




3
Überfüllen von Fehlern bei der Befehlsersetzung mit "-o errtrace" (dh setzen von -E)
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 muss es jedoch falsch interpretieren, da Folgendes nicht funktioniert: #!/usr/bin/env …

5
grep Dateien aus der Liste
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 -i 'foo' <(cat files.txt) $ …

2
Verschachtelte Anführungszeichen in Unterschalen
Angenommen, ich muss Anführungszeichen verwenden, um die Subshell-Ausgabe wie folgt zu kapseln: DATA="$(cat file.hex | xxd -r)" Aber ich muss solche Sachen verschachteln wie: DATA="$(cat file.hex | xxd -r | tr -d \"$(cat trim.txt)\")" Ich kann keine einfachen Anführungszeichen verwenden, da die darin enthaltenen Variablen nicht erweitert werden. Das Ausblenden …


3
Multivariable für Schleifen
Gibt es eine Möglichkeit, mehrere Variablen (nicht nur ganze Zahlen) in forSchleifen anzugeben bash? Ich kann 2 Akten haben, die beliebigen Text enthalten, mit dem ich arbeiten müsste. Was ich funktionell brauche, ist so etwas: for i in $(cat file1) and j in $(cat file2); do command $i $j; done …

3
Wie kann ich über die Befehlsersetzung Argumente für einen anderen Befehl generieren?
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 …


2
Zuweisungen sind wie Befehle mit einem Exit-Status, außer wenn Befehle ersetzt werden.
Siehe die folgenden Beispiele und ihre Ausgaben in POSIX-Shells: false;echo $?oder false || echo 1:1 false;foo="bar";echo $?oder foo="bar" && echo 0:0 foo=$(false);echo $?oder foo=$(false) || echo 1:1 foo=$(true);echo $?oder foo=$(true) && echo 0:0 Wie in der am höchsten bewerteten Antwort unter /programming/6834487/what-is-the-variable-in-shell-scripting erwähnt : $? wird verwendet, um den Rückgabewert …



1
Warum gibt es am Ende des Zitierens einer Unterschale und der Übergabe der Ergebnisse an das Echo keine neue Zeile?
Wenn ich ls | grep pngdie Ausgabe von grep mache, ist: 2015-05-15-200203_1920x1080_scrot.png 2015-05-16-025536_1920x1080_scrot.png (Dateiname, Newline, Dateiname, Newline) dann echo $(ls | grep png)Ausgaben: 2015-05-15-200203_1920x1080_scrot.png 2015-05-16-025536_1920x1080_scrot.png (Dateiname, Leerzeichen von Wortaufteilung, Dateiname, Zeilenumbruch !! von Echo !!) Das ist alles in Ordnung, aber wenn ich dies tue, um die Wortteilung zu verhindern …

2
if-Befehl in find -exec
Ich habe nur versucht, alle Verzeichnisse und Dateien im aktuellen Verzeichnis aufzulisten und auch zu schreiben, ob es sich um Dateien oder Verzeichnisse handelt, mit dem folgenden Befehl: find -exec echo `echo {} : ;if [ -f {} ]; then echo file; else echo directory;fi` \; Ich weiß, dass es …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.