Angenommen, ich möchte einen Befehl wie folgt über Bash ausführen: /bin/bash -c "ls -l" Laut Bash-Manpage könnte ich es auch so ausführen: # don't process arguments after this one # | pass all unprocessed arguments to command # | | # V V /bin/bash -c ls -- -l außer es …
Mit findwith grepkann man Dateien finden, die einem Muster entsprechen: # find | grep error ./solr-modifiedSolr4/SolrPhpClient/phpdocs/errors.html ./error_log ./includes/classes/error_log Wenn Sie jedoch findnur die erste Datei verwenden, wird Folgendes nicht gefunden: # find . -name error* ./error_log ./includes/classes/error_log Warum wird finddie errors.htmlDatei nicht gefunden, wenn sie nicht mit verwendet wird grep? …
Ich habe ein Skript, das einen Textstrom liest und eine Datei mit sed-Befehlen generiert, die später mit ausgeführt wird sed -f. Die generierten sed Befehle sind wie folgt: s/cid:image002\.gif@01CC3D46\.926E77E0/https:\/\/mysite.com\/files\/1922/g s/cid:image003\.gif@01CC3D46\.926E77E0/https:\/\/mysite.com\/files\/1923/g s/cid:image004\.jpg@01CC3D46\.926E77E0/https:\/\/mysite.com\/files\/1924/g Angenommen, das Skript, das die sedBefehle generiert, sieht folgendermaßen aus: while read cid fileid do cidpat="$(echo $cid | sed …
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]}" " …
Ich verwende sed, um Muster in SAS-Dateien zu suchen und zu ersetzen, anstatt sie einzeln zu ändern. Das Problem ist, dass ich versuche, Makrovariablen zu ersetzen, und wenn ich das kaufmännische Und verwende, wird es nicht richtig verarbeitet. Here's my code: sed -ie 's/user=&uid./user=&sysuserid./g' *_table_*.sas Wenn ich diesen Befehl ausführe, …
Ich möchte Variablen mit dynamisch Werte zuweisen eval. Das folgende Dummy-Beispiel funktioniert: var_name="fruit" var_value="orange" eval $(echo $var_name=$var_value) echo $fruit orange Wenn der Variablenwert jedoch Leerzeichen enthält, wird evalein Fehler zurückgegeben, auch wenn $var_valuezwischen Anführungszeichen gesetzt wird: var_name="fruit" var_value="blue orange" eval $(echo $var_name="$var_value") bash: orange : command not found Wie kann …
Ich habe einige Umgebungsvariablen in meinem .profile wie folgt definiert: MY_HOME="/home/my_user" Die Variable scheint jedoch nur ausgewertet zu werden, wenn ich die Anführungszeichen entferne und die Datei erneut entpacke. Ich glaube, die Anführungszeichen sind notwendig, wenn Leerzeichen verwendet werden sollen, und einfache Anführungszeichen werden verwendet, wenn Fluchtwege nicht erwünscht sind. …
Ich habe darüber gelesen, dass ich Variablen in bash zitieren sollte, zB "$ foo" anstelle von $ foo. Beim Schreiben eines Skripts stieß ich jedoch auf einen Fall, in dem es ohne Anführungszeichen, jedoch nicht mit diesen funktioniert: wget_options='--mirror --no-host-directories' local_root="$1" # ./testdir recieved from command line remote_root="$2" # ftp://XXX …
Die allgemeine Regel in Shell-Skripten lautet, dass Variablen immer in Anführungszeichen gesetzt werden sollten, es sei denn, es gibt einen zwingenden Grund, dies nicht zu tun. Weitere Einzelheiten, als Sie wahrscheinlich wissen möchten, finden Sie in diesem großartigen Q & A: Security-Artikel . Betrachten Sie jedoch eine Funktion wie die …
Dieser Beitrag enthält eigentlich zwei getrennte Fragen, aber ich denke, dass eine Gruppierung dieser Fragen mehr Kontext ergibt. Ich habe diese Frage zu Anführungszeichen für Variablen durchgearbeitet, verstehe aber nicht ganz, was Variablenerweiterung überhaupt bedeutet. Meine erste Frage lautet also: Was ist variable Expansion unter Unix / Linux? Ein zweiter …
In Abschnitt 3.1.2.3 mit dem Titel Double Quotes heißt es im Bash-Handbuch: Das Einschließen von Zeichen in doppelte Anführungszeichen ('"') behält den Literalwert aller Zeichen in den Anführungszeichen bei, mit Ausnahme von '$', '', '\' und, wenn die Verlaufserweiterung aktiviert ist, '!'. Im Moment beschäftige ich mich mit dem einfachen …
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 …
Heute bin ich von der Arbeit nach Hause gekommen (Bash auf einer Ubuntu-Box ausführen) und habe versucht, mit meinem geliebten zsh Code auf meiner lokalen Arch-Box auszuführen, und die Befehle sind fehlgeschlagen? Der Befehl ist unten mit den persönlichen Daten und IP offensichtlich geändert ffmpeg -i rtsp://user:pass@my.webserver.org:5554/my-media/media.amp?videocodec=h264 -threads 3 -vcodec …
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 …
Ich benutze GNU bash 4.3.48. Betrachten Sie die folgenden zwei Befehle, die sich nur durch ein einzelnes Dollarzeichen unterscheiden. Befehl 1: echo "(echo " * ")" Befehl 2: echo "$(echo " * ")" Die Ausgabe von ihnen ist jeweils (echo test.txt ppcg.sh ) und * Im ersten Fall *ist das …
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.