Als «shell-script» getaggte Fragen

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

3
Welcher Shell-Interpreter führt ein Skript ohne Shebang aus?
Angenommen, die Standard-Shell für mein Konto ist zsh, aber ich habe das Terminal geöffnet und bash gestartet und ein Skript mit dem Namen ausgeführt prac002.sh. Mit welchem ​​Shell-Interpreter würde das Skript ausgeführt, zsh oder bash? Betrachten Sie das folgende Beispiel: papagolf@Sierra ~/My Files/My Programs/Learning/Shell % sudo cat /etc/passwd | grep …

6
Wählen Sie den Interpreter nach dem Start des Skripts aus, z. B. wenn / else in Hashbang enthalten ist
Gibt es eine Möglichkeit, den Interpreter, der ein Skript ausführt, dynamisch auszuwählen? Ich habe ein Skript, das auf zwei verschiedenen Systemen ausgeführt wird, und der Interpreter, den ich verwenden möchte, befindet sich an verschiedenen Orten auf den beiden Systemen. Am Ende muss ich die Hashbang-Linie jedes Mal ändern, wenn ich …

1
Entfernen Sie die Stille von Audiodateien, während Sie Lücken lassen
Derzeit verwenden wir diesen Befehl in einem Shell-Skript, um Stille aus Audiodateien zu entfernen: ffmpeg -i $INFILE -af silenceremove=0:0:0:-1:1:${NOISE_TOLERANCE}dB -ac 1 $SILENCED_FILE -y Dies funktioniert einwandfrei, mit der Ausnahme, dass die gesamte Stille beseitigt wird und der verbleibende Ton zusammengedrückt wird. Wie geht das, wenn zwischen den einzelnen Audiodateien zwei …



4
Vergleichen Sie zwei Spalten mit unterschiedlichen Dateien und drucken Sie sie, wenn sie übereinstimmen
Ich verwende Solaris 10 und daher funktionieren die grep -Optionen mit -f nicht. Ich habe zwei durch Pipes getrennte Dateien: file1: abc|123|BNY|apple| cab|234|cyx|orange| def|kumar|pki|bird| Datei 2: abc|123| kumar|pki| cab|234 Ich möchte die ersten beiden Spalten von Datei2 mit Datei1 vergleichen (den gesamten Inhalt von Datei1 in den ersten beiden Spalten …

4
Lass ssh-add ruhig sein, wenn key schon da ist
Ich möchte ganz ssh-add /path/to/special_keyoben in ein Skript schreiben. Dies funktioniert einwandfrei, fordert jedoch immer zur Eingabe der Passphrase auf. Dies ist seltsam und ein wenig ärgerlich, da immer noch nach der Passphrase gefragt wird, auch wenn ssh-add -lder Schlüssel bereits hinzugefügt wurde. Gibt es eine Möglichkeit, dies mitzuteilen: "Fügen …

5
Stateful-Bash-Funktion
Ich möchte eine Funktion in Bash implementieren, die bei jedem Aufruf die Anzahl erhöht (und zurückgibt). Leider scheint dies nicht trivial zu sein, da ich die Funktion in einer Subshell aufrufe und folglich die Variablen der übergeordneten Shell nicht ändern kann. Hier ist mein Versuch: PS_COUNT=0 ps_count_inc() { let PS_COUNT=PS_COUNT+1 …

4
Bash: Interaktive Remote-Eingabeaufforderung
Ich habe ein Skript, das eine Verbindung zu einem Remote-Server herstellt und prüfe, ob ein Paket installiert ist: ssh root@server 'bash -s' < myscript.sh myscript.sh: OUT=`rpm -qa | grep ntpdate` if [ "$OUT" != "" ] ; then echo "ntpdate already installed" else yum install $1 fi Dieses Beispiel könnte …
16 bash  shell-script  ssh  stdin  read 

3
Beenden eines Bash-Shell-Skripts, das im Hintergrund ausgeführt wird
Ich verwende oft bashShell-Skripte, um einfache Befehle für viele verschiedene Dateien auszuführen. Angenommen, dass ich den folgenden habe bashShell - Skript, genannt script.sh, die das Programm / Befehl läuft fooauf drei Textdateien "a.txt", "b.txt", "c.txt": #!/bin/bash for strname in "a" "b" "c" do foo $strname".txt" done Angenommen, dies foo $strname".txt"ist …


4
Pfade robust bauen
Angenommen, ich habe mehrere Variablen in einem Shell-Skript (z. B. in zsh): FOLDER_1, FOLDER_2, etc. Diese Variablen beziehen sich auf Ordner absteigend /. Zum Beispiel, wenn ich einen Pfad habe/home/me/stuff/items Die Variablen wären: FOLDER_1='home' FOLDER_2='me' FOLDER_3='stuff' Angenommen, ich möchte den entsprechenden Pfad durch Verketten der Variablen wiederherstellen. Eine Möglichkeit besteht …


5
Komprimieren Sie eine große Anzahl großer Dateien schnell
Täglich werden ca. 200 GB Protokolldaten generiert, die auf ca. 150 verschiedene Protokolldateien verteilt sind. Ich habe ein Skript, das die Dateien an einen temporären Speicherort verschiebt und ein tar-bz2 im temporären Verzeichnis ausführt. Ich erhalte gute Ergebnisse, da 200 GB-Protokolle auf ca. 12-15 GB komprimiert werden. Das Problem ist, …

2
Mit welchem ​​idempotenten Befehl kann ich einen Symlink erstellen, der auf ein Verzeichnis verweist?
Ich möchte einen Befehl in ein Shell-Skript einfügen, das einen Symlink zu einem Verzeichnis erstellt, aber dieses Skript könnte immer wieder ausgeführt werden, sodass der Befehl bei nachfolgenden Aufrufen nichts ändern sollte. Hier ist die Verzeichnisstruktur: % tree /tmp/test_symlink /tmp/test_symlink ├── foo └── repo └── resources └── snippets ├── php.snippets …

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.