csh (issue not answered but solved)

thanasis thanasis at asyr.hopto.org
Fri May 4 16:10:24 EEST 2007


on 05/04/2007 12:57 PM Giorgos Keramidas wrote the following:
> On 2007-05-04 11:37, thanasis <thanasis at asyr.hopto.org> wrote:
>   
>> Σε centos 5.0
>> το /bin/csh είναι link στο /bin/tcsh
>> ls -l /bin/csh
>> lrwxrwxrwx 1 root root 4 May  2 11:55 /bin/csh -> tcsh*
>>
>> Όταν δίνω την
>> echo "\t\t1. menu"
>> παίρνω
>> \t\t1. menu
>>
>> Θέτοντας:
>> set echo_style=both
>> και δίνοντας την παραπάνω παίρνω
>>        1. menu
>> (δηλ. 2 tab στη θέση των 2 \t)
>>
>> Άν όμως τρέξω την εντολή μέσα από εκτελέσιμο script, δεν κρατάει την
>> παραπάνω ρύθμιση.
>> Τι πρέπει να κάνω για να είναι η default λειτουργία του echo όπως η
>> δέυτερη, δηλ. να έχω πάντα στο περιβάλλον το set echo_style=both ;
>>     
>
> Η μόνη Σωστή(ΤΜ) λύση είναι να σταματήσεις να γράφεις scripts με
> τη μαλακία που έφτιαξε ο Bill Joy για να δοκιμάσει το job control
> στο BSD UNIX.
>
> http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/
>
> Το POSIX sh(1) είναι πανέμορφο shell και έχει πολύ πιο προβλέψιμο
> χειρισμό των quoted τιμών.
>
> Δοκίμασέ το.  Θα με θυμηθείς στο μέλλον και δε θα σου έρχονται
> βρισίδια στο νου επειδή το csh έκανε expand το λάθος 'μαγικό'
> χαρακτήρα στο λάθος string μέσα στο script σου.
>
>
>
>   
Το πρόβλημά μου ήταν ότι έπρεπε να τρέξω ήδη υπάρχοντα/έτοιμα scripts,
που τρέχουν και έτσι, όπως είναι, και κάνουν την δουλεία τους, αλλά
χαλάει το output στο terminal όταν ζητάει επιλογές από τον χρήστη.
Δέν είχα προσέξει όμως ότι παρ' ότι ο χρήστης τρέχει σε csh, τα scripts
έχουν μέσα (ξεκινούν με):
#!/bin/ksh
είναι δε γραμμένα και συμβατά με RHEL 3 και 4 (και centos 3 και 4),
γιατί σ' αυτά το /bin/ksh είναι του πακέτου pdksh ενώ στο centos 5 (RHEL
5) είναι του ksh. =-O
...και δίνοντας rpm -e ksh και rpm -Uvh pdksh (από το cd του centos 4)
όλα τρέχουν τώρα μια χαρά. :-)
Αυτά έχει το linux.... :-P 
Η εμπειρία διστυχώς δεν αγοράζεται.... :'(




More information about the Linux-greek-users mailing list