Als «shell-script» getaggte Fragen

Fragen zu Shell-Skripten, ausführbaren Dateien, die von einer Shell interpretiert werden (bash, zsh usw.).

3
Wie kann ich verhindern, dass nicht unterstützte 'shopt'-Optionen Fehler in meiner .bashrc verursachen?
Ich arbeite in einer relativ heterogenen Umgebung, in der ich möglicherweise verschiedene Versionen von Bash auf verschiedenen HPC-Knoten, VMs oder meiner persönlichen Workstation ausführe. Da ich meine Anmeldeskripte in ein Git-Repo eingefügt habe, möchte ich dasselbe (ish) .bashrcauf der ganzen Linie verwenden, ohne viel Unordnung vom Typ "Wenn dieser Host, …

1
diff zeigt nur Unterschiede innerhalb der Linie
Ich möchte Zeilen in zwei Dateien vergleichen, aber um das Rauschen in der Ausgabe zu minimieren, möchte ich, dass nur die tatsächlichen Unterschiede in den Zeilen gedruckt werden. Zum Beispiel angesichts der beiden folgenden Dateien: a.txt a b c d e f g h i j k l m n …


2
Erstellen Sie einen Befehl dynamisch
Ich arbeite an einem Skript und muss den tarBefehl dynamisch erstellen . Hier sind zwei Beispiele, um zu veranschaulichen, was ich versuche: #!/bin/bash TAR_ME="/tmp" EXCLUDE=("/tmp/hello hello" "/tmp/systemd*" "/tmp/Temp*") _tar="tar "`printf -- '--exclude="%s" ' "${EXCLUDE[@]}"`" -zcf tmp.tar.gz" echo COMMAND: "${_tar}" ${_tar} "$TAR_ME" echo -e "\n\nNEXT:\n\n" EXCLUDE=("--exclude=/tmp/hello\ hello" "--exclude=/tmp/systemd*" "--exclude=/tmp/Temp*") _tar="tar "`printf …

6
Bash-Sortierarray nach Länge der Elemente?
Bei einem Array von Zeichenfolgen möchte ich das Array nach der Länge jedes Elements sortieren. Zum Beispiel... array=( "tiny string" "the longest string in the list" "middle string" "medium string" "also a medium string" "short string" ) Sollte sortieren nach ... "the longest string in the list" "also a medium …


2
Manipulation der XML-Befehlszeile (Shell-Skript)
Wie manipuliere ich XML über die Befehlszeile im Shell-Skript? Es gibt viele Befehle zum Bearbeiten von Tabellendaten, zum Ersetzen von Umgebungsvariablen oder zum Ersetzen von Textfragmenten durch Regex, aber ich habe nichts für XML gefunden. Mein Build-Skript muss ein Tag mit Inhalt in das Haupt-Tag des XML-Dokuments einfügen, und ich …

3
Schutz des Shell-Befehls mit String-Variable
Innerhalb einer Programmiersprache führe ich einen einfachen Shell-Befehl aus cd var; echo > create_a_file_here Dabei ist var eine Variable, die eine Zeichenfolge (hoffentlich) eines Verzeichnisses an der Stelle enthält, an der ich die Datei "create_a_file_here" erstellen möchte. Wenn jemand diese Codezeile sieht, kann er ausgenutzt werden, indem beispielsweise Folgendes zugewiesen …

7
Gegenüber dem Befehl `source`
Ich benutze den sourceBefehl in meinem Bash-Skript, um die Variablenwerte zu lesen / drucken more linuxmachines_mount_point.txt export linuxmachine01="sdb sdc sdf sdd sde sdg" export linuxmachine02="sde sdd sdb sdf sdc" export linuxmachine03="sdb sdd sdc sde sdf" export linuxmachine06="sdb sde sdf sdd" source linuxmachines_mount_point.txt echo $linuxmachine01 sdb sdc sdf sdd sde sdg …

4
Wie kann man einen Ordner gleichzeitig verschieben und neu erstellen?
Ich habe einen Ordner statisticsauf einem Ubuntu-Server, in dem regelmäßig Datendateien gespeichert werden. Wie kann ich einen statisticsOrdner umbenennen , backup-xxwährend ich einen Ordner neu erstelle statistics, um neue Dateien zu speichern? Die Dateien im statisticsOrdner werden von PHP erstellt file_put_contents. Ich bevorzuge das Umbenennen des Ordners, da sich viele …

4
Kann ein Shell-Skript sein Argument so drucken, wie Sie es an der Shell-Eingabeaufforderung schreiben würden?
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 …





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.