Als «shell» getaggte Fragen

Die Shell ist die Befehlszeilenschnittstelle von Unix. Sie können Befehle interaktiv in eine Shell eingeben oder Skripts schreiben, um Aufgaben zu automatisieren. Verwenden Sie dieses Tag für Fragen zu / bin / sh und den meisten kompatiblen Shells (ash, bash, ksh, zsh,…). Überprüfen Sie Shell-Skripte mit Fehlern auf http://shellcheck.net, bevor Sie sie hier veröffentlichen.



2
Warum gibt es keinen offensichtlichen Klon oder keine Gabel in einem einfachen Bash-Befehl und wie wird das gemacht?
Betrachten Sie Folgendes (mit shSein /bin/dash): $ strace -e trace=process sh -c 'grep "^Pid:" /proc/self/status /proc/$$/status' execve("/bin/sh", ["sh", "-c", "grep \"^Pid:\" /proc/self/status /"...], [/* 47 vars */]) = 0 arch_prctl(ARCH_SET_FS, 0x7fcc8b661540) = 0 clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fcc8b661810) = 24865 wait4(-1, /proc/self/status:Pid: 24865 /proc/24864/status:Pid: 24864 [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) …

5
Bash: Wie speichere ich eine bestimmte Zeile der CLI-Ausgabe in einer Datei?
Nehmen wir an, ich erhalte die folgende Ausgabe, nachdem ich ein Bash-Skript in der CLI ausgeführt habe (dieser Text wird also im Terminal angezeigt): POST https://mycompany.com/ COOKIE='BLABLABLABLABLA' HOST='ANYIPADDRESS' FINGERPRINT='sha256:BLABLABLABLA' Wie kann ich den Inhalt von COOKIE(nur den Text zwischen 'und ') in einer separaten Datei speichern? Darüber hinaus sollte der …


3
Ist das Parsen von Skripten zur Laufzeit von Skripten für Shells allgegenwärtig oder in anderen Interpreten vorhanden, und wie funktioniert das?
Ich hatte immer gedacht, dass Shells ganze Skripte analysieren, einen AST erstellen und diesen AST dann aus dem Speicher ausführen. Ich habe jedoch gerade einen Kommentar von Stéphane Chazelas gelesen und die Ausführung dieses Skripts getestet: edit-while-executing.sh: #!/bin/bash echo start sleep 10 und dann, während es beim Laufen schlief: $ …


1
Der Bash-Export ignoriert set -ex
Ich bin heute auf ein seltsames Verhalten gestoßen: #!/bin/bash set -ex export a=$(cat foo) echo "It's a living thing" b=$(cat foo) echo "This won't make it" Dies hört nicht auf cat foo, obwohl fooes nicht existiert. Aber ohne den Export schlägt es fehl. Warum?

5
Wie könnte ich zweimal in einem Durchgang grep?
Gibt es eine Möglichkeit, grepzweimal in der Datei zu vermeiden und die Variablen nur in einem Durchgang zu füllen? Die Datei ist klein, es ist also keine große Sache, dass ich mich nur gefragt habe, ob ich es in einem Durchgang schaffen könnte FIRST_NAME=$(grep "$customer_id" customer-info|cut -f5 -d,) LAST_NAME=$(grep "$customer_id" …



2
Listen Sie alle Programme auf, die von einem Shell-Skript verwendet werden
Ich versuche eine Methode zu finden, um alle Programme aufzulisten, die ein Skript verwendet, wenn es ausgeführt wird, ohne es tatsächlich auszuführen. Ich habe diese schnellen und schmutzigen Oneliner geschrieben: # fill an array with all the useful words except variables, options, brackets, quotes readarray -t list <<<$( grep -v …
7 bash  shell  audit 

3
Zurückkehren '.' oder 'Quelle'
Ich habe versehentlich die falsche Umgebung aus einem Skript bezogen. Gibt es eine Möglichkeit, die Quelle zu entfernen oder mit anderen Worten, sie zurückzusetzen und die vorherige Umgebung wiederherzustellen? Die offensichtliche Antwort ist natürlich, von einer Clean-Shell-Sitzung zu beginnen, aber ich bin gespannt, ob es eine andere Lösung gibt. Update: …

2
Variablendefinition in 'sh -c'
Ich habe versucht, eine Variable in einer 'sh -c'-Befehlszeichenfolge zu definieren: sh -c "TMP=??; echo $TMP;" Es wurde nichts gedruckt. Warum kann ich keine Variable in einer 'sh -c'-Zeichenfolge definieren?
7 shell  variable 

1
Anweisungsblöcke Mechanismus in Shell-Skripten?
In Beginning Linux Programming book. Es gibt einen Abschnitt über den Anweisungsblock . In diesem Teil sieht die Erklärung wie folgt aus. Anweisungsblöcke Wenn Sie mehrere Anweisungen an einer Stelle verwenden möchten, an der nur eine zulässig ist, z. B. in einer UND- oder ODER-Liste, können Sie dies tun, indem …

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.