Als «shell-script» getaggte Fragen

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


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" …


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: …


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 …

6
Wie extrahiere ich bestimmte Elemente aus einem Dateinamen?
Ich habe eine Reihe von Dateien im folgenden Format: 2014-11-19.8.ext 2014-11-26.1.ext 2014-11-26.2.blah.ext 2014-11-26_3.ext 2014-11-26.4.stuff_here.ext 2014-12-03.1. could be anything.ext 2014-12-032b.ext 2014-11-26 613 adva.ext Mein Ziel ist es, die gesamte Liste der Dateien zu durchlaufen und die Datumsformatierung zu übernehmen YYYY-MM-DDund diese in einer Variablen im Format YYYYMMDDfür die weitere Verarbeitung zu …


2
Rufen Sie den Gerätenamen des angeschlossenen USB-Laufwerks ab
Ich muss die Gerätenamen aller angeschlossenen USB-Festplatten (dh sdd) abrufen . Ich habe 3 USB-Festplatten angeschlossen und 2 SATA-Festplatten: $ find /sys/devices/ -name block /sys/devices/pci0000:00/0000:00:14.0/usb3/3-7/3-7:1.0/host5/target5:0:0/5:0:0:0/block /sys/devices/pci0000:00/0000:00:14.0/usb4/4-2/4-2:1.0/host6/target6:0:0/6:0:0:0/block /sys/devices/pci0000:00/0000:00:14.0/usb4/4-5/4-5:1.0/host4/target4:0:0/4:0:0:0/block /sys/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block /sys/devices/pci0000:00/0000:00:1f.2/ata2/host1/target1:0:0/1:0:0:0/block Ich möchte die SATA-Festplatten ignorieren, muss aber alle USB-Festplatten auflisten. Im Terminal kann ich uns lsund es wird mir geben sdd: …



1
Programmgesteuert nach Docker-Installation suchen (sh-script)
Ist es möglich, per Shell-Skript zu überprüfen, ob Docker installiert ist. Ich würde dies manuell überprüfen sudo docker run --name hello-world-container hello-world sudo docker rm hello-world-container Ich möchte dies jedoch programmgesteuert überprüfen. Wenn dieser Test fehlschlägt, kann die Installationsroutine gestartet werden. Aktualisieren #!/bin/bash which docker if [ $? -eq 0 …

2
Warum erweitert sich dash \\\\ anders als bash?
Ich habe ein kleines Open-Source-Projekt, das ich aus verschiedenen Gründen versucht habe, in einem einigermaßen portablen Shell-Skript zu schreiben. Die automatisierten Integrationstests prüfen unter anderem, ob feindliche Zeichen in Pfadausdrücken richtig behandelt werden. Benutzer mit /bin/shbereitgestellt von bashsehen einen Fehler in einem Test, den ich auf Folgendes vereinfacht habe: echo …

1
Code funktioniert manuell auf dem Terminal, kann jedoch kein Skript ausführen
Ich habe dieses Skript erstellt, um meine Postgresql-Datenbank mit cron zu sichern: backup.sh #!/bin/bash export PGUSER="user" export PGPASSWORD="pass" FECHA_ACTUAL=`date +%Y-%m-%d` HORA_ACTUAL=`date +%H:%M` ARCH_RESP=$FECHA_ACTUAL-$HORA_ACTUAL pg_dump -O -Fc mydb -h localhost > /home/user/backups/backup_$ARCH_RESP.sql find /home/user/backups/ -name '*.sql' -mtime +2 -exec rm -f {} \; unset PGUSER unset PGPASSWORD Wenn ich diesen Code …


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.