Exporting $PS1.

Ag. Hatzimanikas a.hatzim at gmail.com
Wed Mar 14 14:21:49 PDT 2007

On Wed, Mar 14, at 08:59 Wilco Beekhuizen wrote:
> Thanks for the info! I solved the problem and bash was not the one to blame.
> While writing this I noticed readline-5.1 was on my system. Updating
> to 5.2 solved my problems!


Although I am rather new in linux-land , I can't really understand why the
vast majority of linux users still uses bash as their interactive shell.
Zsh is far superior in almost every aspect of interactivity.

The zsh completion system is just ... O well look for some examples:

Sorry for the unavoidable long lines in your mailer.

[ag][723](~)ls /usr/bin/[tab]
zsh: do you wish to see all 801 possibilities (268 lines)? [tab again]
\[*                           grn*                          psfaddtable@                
a2p*                          grodvi*                       psfgettable@                
aclocal*                      groff*                        psfstriptable@              
aclocal-1.10*                 groffer*                      psfxtable*                  
aconnect*                     grog*                         pstree*     
What you see in above figure is just a menu, you can navigate fairly quickly with 
the arrow keys and go to the specific item.

[ag][723](~)sed -[tab]
--expression       -e           -- add sed commands to run                                                         
--file             -f           -- add contents of file to commands to run                                         
--help                          -- print program usage                                                             
--in-place         -i           -- edit files in place                                                             
--line-length      -l           -- specify line-wrap length for the l command                                      
--regexp-extended  -r           -- use extended regular expressions                                                
--separate         -s           -- consider files separately instead of as a combined stream                       
--silent           --quiet  -n  -- suppress automatic printing of pattern space                                    
--unbuffered       -u           -- disable data buffering                                                          
--version          -V           -- print program version     

This is what happens when you try to complete an option.

There functions for almost every known command.
And it's not so difficult to write your own functions for your scripts.

I keep bash around because I want the shell scripts to be portable, and sh emulation in zsh 
still is not perfect.

One thing though that I noticed that it doesn't work in zsh (unless I am mising something),
but works in bash is the brace expansion mechanism and particularly this form.

bash-3.2$ for i in {a..z} ;do echo -n $i ;done
Same thing in zsh
[ag][589](~)for i in {a..z} ;do echo $i;done 
Works only this way:
[ag][597](~)for i in {a,b,c,d};do echo -n $i;done
But it works with numbers:
for i in {1..10} ;do echo -n $i;done

More information about the blfs-dev mailing list