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
Anführungszeichen innerhalb von $ (Befehlsersetzung) in Bash
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 "$FILE") oder zitiere ich außerhalb der Vertretung? DIRNAME="$(dirname $FILE)" …


6
Wie kann ich `date` in einem Cron Tab Job ausführen?
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 0: unexpected EOF while looking for matching …


3
Backtick verstehen (`)
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 werden.





1
Was benötigt POSIX für die hier aufgeführten Dokumente innerhalb der Befehlsersetzung?
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 , während dasselbe Here-Dokument außerhalb der Befehlsersetzung wie erwartet funktioniert . …

2
verschachtelte doppelte Anführungszeichen in hoch bewerteten Einzeiler
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, werden folgende Fragmente in doppelte Anführungszeichen gesetzt: "$( cd " "${BASH_SOURCE[0]}" " …


3
Gibt es einen Grund, die Substitution für Neuentwicklungen zu verwenden oder zu lehren?
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 $(…): Bash ash (und damit BusyBox, also die meisten Embedded Linux) Strich FreeBSD / bin / …

5
Verwendung einer generierten Liste von Dateinamen als Argumentliste - mit Leerzeichen
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 Namen aufgeteilt werden. Normalerweise würde ich die …

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.