che uso come mio Bash shell di login, ma per lo scripting sceglierei la Bourne shell in qualsiasi giorno della settimana e due volte di domenica. Bash ha caratteristiche migliori, migliore facilità d'uso e bug migliori.
In realtà, lo stesso materiale che mi fa scegliere Bash quando effettuo l'accesso, mi evita durante lo scripting. Bash cerca di rendere tutto bello e accogliente per l'utente, ma a spese di un eseguibile 776 kB (sulla mia macchina), rispetto a 140 kB per la shell Bourne. Perché il mio script dovrebbe preoccuparsi della facilità d'uso? Qualsiasi guadagno che potrei ottenere usando l'intelligente funzione Bash viene effettivamente annullato dall'impronta della shell, che è più di cinque volte più grande.
Ho computer che eseguono Linux, FreeBSD e OS X. Anche se raramente mi muovo tra i computer, è bello avere la possibilità. In uno script di shell Bourne, è sufficiente digitare
#!/bin/sh
e funziona. Sempre. Bash potrebbe essere comune su Linux, ma non è standardizzato come la shell Bourne. Su FreeBSD, Bash non è installato di default. Può essere installato da Porte se il sysadmin pensa che sia una buona idea ma, anche allora, finisce in /usr/local/bin/bash (non /bin/bash). Pertanto, se si decide di andare con Bash, è necessario scrivere
#!/usr/bin/env bash
per rendere lo script portatile. env
troverà la shell per te, indipendentemente dal tuo gusto Unix (purché sia installato).
Alla fine della giornata, è la vostra scelta. Assicurati che i tuoi script siano in realtà conformi allo alla shell che scegli, e non basandoti sul fatto che "sh" sia simulato con "bash" o qualcosa di simile.
fonte
2012-02-25 21:55:15
basta che non csh –
[Programmazione Csh Considerato Nocivo] (http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/) –
codice di programmatori REALE in Korn! :-P Preferisco sempre sh rispetto a bash, perché la maggior parte delle cose sintattiche/caratteristiche saranno uguali o almeno compatibili con il comportamento sh in molte distro; mentre bash non è disponibile in alcuni casi se lavori con AIX ecc. Ma se lavori con script solo per Linux, bash è preferibile. Rende la programmazione molto più semplice. –