it.phhsnews.com


it.phhsnews.com / Quando è meglio usare #! / Bin / bash Invece di #! / Bin / sh in uno script di shell?

Quando è meglio usare #! / Bin / bash Invece di #! / Bin / sh in uno script di shell?


Quando si sta creando un nuovo script di shell, si desidera certo è il più privo di problemi possibile, ma a volte può essere un po 'di confusione sapere quale shebang è il migliore da usare. In questa nota, il post di Q & A di SuperUser di oggi ha la risposta alla domanda di un lettore confuso.

La sessione di domande e risposte di oggi ci viene fornita per gentile concessione di SuperUser, una suddivisione di Stack Exchange, un raggruppamento di Q & A basato su community.

La domanda

Lettore SuperUser Hendre vuole sapere quando è meglio usare #! / Bin / bash invece di #! / Bin / sh negli script di shell:

Quando è più appropriato usare #! / Bin / bash piuttosto che #! / Bin / sh in uno script di shell?

Quando è meglio usare #! / bin / bash invece di #! / bin / sh in uno script di shell?

La risposta

SuperUser contributor grawity ha la risposta per noi:

In breve:

  • Esistono diverse shell che implementano un superset della specifica POSIX sh. Su diversi sistemi, / bin / sh potrebbe essere un collegamento a ash, bash, dash, ksh, zsh, ecc. Sarà sempre sh-compatibile però, mai csh o fish.
  • Finché man mano che ti attacchi solo alle funzionalità, puoi (e probabilmente dovresti anche) usare #! / bin / sh e lo script dovrebbe funzionare bene, non importa quale sia la shell.
  • Se inizi a utilizzare caratteristiche specifiche di bash (ad es. array), dovresti richiedere specificatamente bash perché, anche se / bin / sh invoca già bash sul tuo sistema, potrebbe non farlo sul sistema di tutti gli altri, e il tuo script non verrà eseguito lì . Lo stesso vale per zsh e ksh, naturalmente.
  • Anche se lo script è solo per uso personale, si potrebbe notare che alcuni sistemi operativi cambiano / bin / sh durante gli aggiornamenti. Ad esempio, su Debian era bash, ma in seguito è stato sostituito con il trattino molto minimale. Gli script che usavano i bashismi ma avevano #! / Bin / sh si sono improvvisamente rotti.

Tuttavia:

  • Anche #! / Bin / bash non è corretto. Su diversi sistemi, bash potrebbe vivere in / usr / bin , / usr / pkg / bin , o / usr / local / bin .
  • A l'opzione più affidabile è #! / usr / bin / env bash , che usa $ PATH . Sebbene lo strumento env stesso non sia strettamente garantito, / usr / bin / env funziona ancora su più sistemi di / bin / bash fa.

Hai qualcosa da aggiungere al spiegazione? Audio disattivato nei commenti. Vuoi leggere più risposte dagli altri utenti di Stack Exchange esperti di tecnologia? Controlla la discussione completa qui.

Credito immagine: Wikipedia


Come massimizzare la batteria del tuo Kindle (e ottenere davvero un mese di lettura)

Come massimizzare la batteria del tuo Kindle (e ottenere davvero un mese di lettura)

Amazon pubblicizza che i lettori di ebook devono essere caricati solo una volta al mese, ma i lettori più pesanti probabilmente scopriranno che bisogno di caricare più spesso. Non più: continua a leggere mentre ti mostriamo come sfogliare la tua raccolta di libri senza ricarica costante. CORRELATI: Come verificare i libri della biblioteca sul tuo Kindle gratuitamente Non dubitare, anche se stai leggendo tutto il giorno e anche scaricando molti libri sul tuo Kindle, sarebbe davvero difficile scaricare completamente la batteria in un solo giorno.

(how-to)

Come creare un collegamento o una voce di menu contestuale per quasi tutte le impostazioni di Windows

Come creare un collegamento o una voce di menu contestuale per quasi tutte le impostazioni di Windows

Non è troppo difficile sfogliare le impostazioni di Windows per trovare quello che ti serve, ma se c'è un'impostazione accedi spesso , perché non renderlo un po 'più facile per te stesso? Windows espone una serie di impostazioni utili tramite URI (Uniform Resource Identifiers) che è possibile utilizzare per creare un collegamento o una voce di menu contestuale per l'accesso rapido a tale impostazione.

(how-to)