On Wed, May 04, 2005 at 04:29:35PM +0200, Julian H. Stacey wrote: > > > tcsh is in the base system and has that capability. > > > > Except: > > > > (1) it's not enabled by default (you need "set autolist", which I only > > discovered recently) > > FreeBSD-5.3 (with csh & tcsh) linked does completion without autolist set. > man csh: > If the autolist shell variable is set, the shell lists the remaining > choices (if any) whenever completion fails: Erm?? As you point out, it says "If the autolist shell variable is set" ^^ ^^^^^^ And furthermore, the example which follows it shows: > set autolist > nm /usr/lib/libt[tab] libtermcap.a_at_ libtermlib.a_at_ > nm /usr/lib/libterm "set autolist" could be made the default in /etc/csh.cshrc if desired. However, this still doesn't alter the fact that csh is a non-POSIX shell. A long time ago I came across a very good explanation of why csh is totally unsuitable for scripting; you can probably find it yourself by googling. But it seems pointless to have one shell for interactive use and a different and incompatible one for scripting; and for `pw useradd` to choose /bin/sh when creating new users, but for root to have /bin/csh! This is just an inconsistency in FreeBSD. Why does root have /bin/csh as its shell? I imagine that it's because it has interactive command editing and history. Now that /bin/sh has that feature, is there any reason for this inconsistency to remain? I'm not opposed to csh remaining bundled with the system indefinitely, for those who want it, and for historical purposes. But I don't see why people should need to be exposed to it these days. Give them /bin/sh, which now has basic history and command editing, and if they find limitations in that, they can always upgrade to "bash" from packages. (Or they can switch to csh, but then they've made an explicit decision to do so, rather than inflicting it on everyone) Regards, Brian.Received on Wed May 04 2005 - 13:00:44 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:34 UTC