csh

Giorgos Keramidas keramida at ceid.upatras.gr
Fri May 4 15:11:47 EEST 2007


On 2007-05-04 14:56, Alexandros Kosiaris <alex at noc.ntua.gr> wrote:
>Giorgos Keramidas wrote:
>> Η μόνη Σωστή(ΤΜ) λύση είναι να σταματήσεις να γράφεις scripts με
>> τη μαλακία που έφτιαξε ο Bill Joy για να δοκιμάσει το job control
>> στο BSD UNIX.
>>
>> http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/
>
> Και η μόνιμη απορία μου: Γιατί στο FreeBSD default shell του root το
> tcsh ?

Για διάφορους λόγους:

  * Είναι BSD-licensed

  * Είναι maintained actively

  * Εχει ορισμένα interactivity features που το κάνουν καλύτερο από το
    POSIX sh(1) για ορισμένους χρήστες

Αλλά κυρίως επειδή:

  * Δεν έχει τόσο σοβαρά bugs που να δικιολογούν την αφαίρεσή του.

  * Το Principle of Least Astonishment (POLA) ισχύει και έχει
   μεγαλύτερη προτεραιότητα από κάτι σαν "μα τι άθλιο που είναι
   πια αυτό το csh".  Στο BSD δεν αλλάζει κάτι που θα επηρέαζε
   χιλιάδες χρήστες/εγκαταστάσεις αν δεν υπάρχει σοβαρός λόγος
   να αλλάξει.

Κι ακόμα καλύτερα, δεν είναι τόσο δύσκολο να κάνει κάποιος:

    csh# exec your-favorite-shell-here

Οπότε δεν πρόκειται να αλλάξει αυτό επειδή είναι 'ενοχλητικό για μερικό
κόσμο', αφού παίζει και παίζει καλά για πάνω από 2 δεκαετίες :)

>> Το POSIX sh(1) είναι πανέμορφο shell και έχει πολύ πιο προβλέψιμο
>> χειρισμό των quoted τιμών.
>>
>> Δοκίμασέ το.  Θα με θυμηθείς στο μέλλον και δε θα σου έρχονται
>> βρισίδια στο νου επειδή το csh έκανε expand το λάθος 'μαγικό'
>> χαρακτήρα στο λάθος string μέσα στο script σου.
>
> Βέβαια θα σου έρχονται τρελά βρισίδια στο νου όποτε κάτι που δουλεύει
> υπέροχα στο non-POSIX bash δεν δουλεύει ούτε κατά διάνοια στο POSIX sh
> και θα τρως τη ζωή σου να κάνεις port αυτό το υπέροχο scriptaki που
> δουλεύει τέλεια αλλού να δουλέψει με το sh.
>
> Εδώ POSIX σημαίνει: Portable non-Operating Shell Inhibiting all eXtra
> functionality.

Δε δουλεύουμε όλοι μας όλη τη μέρα σε Linux.  Το /bin/sh δεν είναι σε
όλα τα λειτουργικά συστήματα το bash.  Για την ακρίβεια δεν είναι σε
κανένα εκτός από το Linux :P




More information about the Linux-greek-users mailing list