Als «shell-script» getaggte Fragen

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

9
Warum ist es besser, "#! / Usr / bin / env NAME" anstelle von "#! / Path / to / NAME" als mein "shebang" zu verwenden?
Ich stelle fest, dass einige Skripte, die ich von anderen erworben habe, den Shebang haben, #!/path/to/NAMEwährend andere (mit demselben Tool, NAME) den Shebang haben #!/usr/bin/env NAME. Beide scheinen richtig zu funktionieren. In Tutorials (zum Beispiel auf Python) scheint es einen Vorschlag zu geben, dass letzterer besser ist. Aber ich verstehe …

3
Verwenden von "$ {a: -b}" für die Variablenzuweisung in Skripten
Ich habe mir ein paar Skripte angesehen, die andere geschrieben haben (insbesondere Red Hat), und viele ihrer Variablen wurden mit der folgenden Notation zugewiesen VARIABLE1="${VARIABLE1:-some_val}" oder einige erweitern andere Variablen VARIABLE2="${VARIABLE2:-`echo $VARIABLE1`}" Was bringt es, diese Notation zu verwenden, anstatt nur die Werte direkt zu deklarieren (z. B. VARIABLE1=some_val)? Gibt …




3
Welche Zeichen brauche ich, um sed in einem sh-Skript zu verwenden?
Nimm das folgende Skript: #!/bin/sh sed 's/(127\.0\.1\.1)\s/\1/' [some file] Wenn ich versuche, dies sh( dashhier) auszuführen , schlägt dies aufgrund der Klammern fehl, die maskiert werden müssen. Aber ich muss den Backslashes selbst nicht entkommen (zwischen den Oktetten oder im \soder \1). Was ist die Regel hier? Was ist, wenn …



3
Leeren Sie den Inhalt einer Datei
Ich kenne drei Methoden, um alle Einträge aus einer Datei zu löschen. Sie sind >filename touch filename filename < /dev/null Von diesen dreien missbrauche ich >filenameam meisten, da dies die geringste Anzahl von Tastenanschlägen erfordert. Ich möchte jedoch wissen, welche der drei Methoden (sofern es effizientere Methoden gibt) in Bezug …



12
Wie ändere ich die Erweiterung mehrerer Dateien?
Ich möchte eine Dateierweiterung von *.txtin ändern *.text. Ich habe versucht, den basenameBefehl zu verwenden, aber ich habe Probleme, mehr als eine Datei zu ändern. Hier ist mein Code: files=`ls -1 *.txt` for x in $files do mv $x "`basename $files .txt`.text" done Ich erhalte diesen Fehler: basename: too many …




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.