de.phhsnews.com


de.phhsnews.com / Wann ist es besser, #! / Bin / bash anstelle von #! / Bin / sh in einem Shell-Skript zu verwenden?

Wann ist es besser, #! / Bin / bash anstelle von #! / Bin / sh in einem Shell-Skript zu verwenden?


Wenn Sie ein neues Shell-Skript erstellen möchten Sicher, es ist so problemlos wie möglich, aber manchmal kann es ein wenig verwirrend sein zu wissen, welche Shebang ist die beste für Sie zu verwenden. In diesem Sinne hat der heutige SuperUser Q & A-Beitrag die Antwort auf die Frage eines verwirrten Lesers.

Die heutige Question & Answer-Sitzung kommt dank SuperUser - einer Unterteilung von Stack Exchange, einer Community-gesteuerten Gruppierung von Q & A-Websites - zustande.

Die Frage

SuperUser-Reader Hendre möchte wissen, wann es besser ist, #! / Bin / bash anstelle von #! / Bin / sh in Shell-Skripten zu verwenden:

Wann ist es sinnvoller #! / Bin / bash als #! / Bin / sh in einem Shell-Skript zu verwenden?

Wann ist es besser, zu verwenden? #! / bin / bash anstelle von #! / bin / sh in einem Shell-Skript?

Die Antwort

SuperUser contributor grawity hat die Antwort für uns:

In short:

  • Es gibt mehrere Shells, die eine Obermenge der POSIX sh-Spezifikation implementieren. Auf verschiedenen Systemen kann / bin / sh eine Verbindung zu ash, bash, dash, ksh, zsh usw. sein. Es wird aber immer sh-kompatibel sein, niemals csh oder fish.
  • So lange Da Sie sich nur an SH-Features halten, können Sie (und wahrscheinlich sollten Sie auch) #! / bin / sh verwenden und das Skript sollte funktionieren, egal welche Shell es ist.
  • Wenn Sie anfangen zu verwenden Für bash-spezifische Features (zB Arrays) sollten Sie bash explizit anfordern, denn auch wenn / bin / sh bereits auf Ihrem System bash aufruft, ist es möglicherweise nicht auf dem System eines anderen, und Ihr Skript läuft dort nicht . Dasselbe gilt natürlich auch für zsh und ksh.
  • Auch wenn das Skript nur für den persönlichen Gebrauch gedacht ist, stellen Sie möglicherweise fest, dass einige Betriebssysteme während Upgrades / bin / sh ändern. Zum Beispiel war es bei Debian Bash, wurde aber später durch den sehr minimalen Bindestrich ersetzt. Skripte, die Bashismen benutzten, aber #! / Bin / sh hatten, waren plötzlich kaputt.

Allerdings:

  • Gerade #! / Bin / bash ist nicht korrekt. Auf verschiedenen Systemen kann bash in / usr / bin , / usr / pkg / bin oder / usr / local / bin ,
  • A, leben Die zuverlässigere Option ist #! / usr / bin / env bash , die $ PATH verwendet. Obwohl das env - Tool selbst nicht unbedingt garantiert ist, funktioniert / usr / bin / env immer noch auf mehr Systemen als / bin / bash .

Fügen Sie etwas hinzu Erläuterung? Ton in den Kommentaren ab. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange Benutzern lesen? Schauen Sie sich den vollständigen Diskussionsfaden hier an.

Bildquelle: Wikipedia


So fügen Sie jedem alten Lautsprecherpaar Bluetooth hinzu

So fügen Sie jedem alten Lautsprecherpaar Bluetooth hinzu

Wir lieben Bluetooth und all seine Möglichkeiten. Einst die Domäne von dorkigen Headsets, ist Bluetooth jetzt in Mäusen, Tastaturen, Telefonen, Computern, Tablets, Fitness-Tracker und vielem mehr enthalten. Eine der besten Anwendungen, die wir je gesehen haben, ist jedoch Bluetooth-Audio. Bluetooth-Audio ist einfach die Fähigkeit, Ihr Gerät, sei es ein Telefon, Tablet, Computer oder andere, an einen Lautsprecher oder Lautsprecher für reines Kabel zu koppeln Hörgenuss.

(how-to)

So aktivieren Sie automatische Sicherheitsupdates auf Ubuntu Server

So aktivieren Sie automatische Sicherheitsupdates auf Ubuntu Server

Es gibt nichts Langweiligeres als einen Systemadministrator, als jeden Tag Sicherheitsupdates auf einem Dutzend Servern auszuführen. Glücklicherweise können Sie mit Ubuntu stabile Sicherheitsupdates automatisieren, so dass Sie nie gefährdet sind. Sie müssen nur einen einzigen Befehl auf Ihrem Server ausführen: sudo dpkg-reconfigure -plow unattended-upgrades Wenn Sie eine Fehlermeldung erhalten, dass das Paket nicht installiert wurde, führen Sie zuerst Folgendes aus: sudo apt install unattended-upgrades Wenn Sie als root angemeldet sind, können Sie das sudo natürlich überspringen.

(how-to)