• [^] # Re: avantage par rapport au bash ?

    Posté par . En réponse à la dépêche Zsh version 4.0.1 disponible. Évalué à 2.

    ------------
    ZSH FEATURES
    ------------

    very close to ksh/sh grammar, with csh additions
    most features of ksh, bash, and tcsh
    can emulate ksh or POSIX sh
    100 builtins, 145 options, 166 key bindings
    short for loops, ex: for i (*.c) echo $i
    select
    shell functions
    autoloaded functions (loaded from a file when they are first referenced)
    conditional expressions (test builtin, [ ... ], and ksh-style [[ ... ]])
    global aliases (may be expanded anywhere on the line)
    directory stack access with ~num
    process substitution (vi =(cmd) edits the output of cmd)
    generalized pipes (ls foo >>(cmd1) 2>>(cmd2) pipes stdout to cmd1
    and stderr to cmd2)
    arithmetic expressions
    advanced globbing:
    ls **/file searches recursively for "file" in subdirectories
    ls file<20-> matches file20, file30, file100, etc.
    ls *.(c|pro) matches *.c and *.pro
    ls *(R) matches only world-readable files
    ls *.c~lex.c matches all .c files except lex.c
    ls (#a1)README matches README with one error, e.g. RADME, REEDME, RAEDME
    ls (#ia1)README same but case insensitive
    qualifiers in parentheses after globbing expression:
    ls *(*@) matches executable files/directories or symlinks
    ls *(L0f.go-w.) matches all zero-length files not group or world writable
    ls *(om[2]) matches the two most recently modified files
    null command shorthands:
    "< file" is same as "more <file"
    "> file" is same as "cat >file"
    ">> file" is same as "cat >>file"
    ksh-style coprocesses
    automatic file stream teeing (ls >foo >bar puts output in two places)
    chpwd() function run every time you change directory (useful for
    updating the status line)
    job control
    csh-style history
    full vi line editing, including "c2w" and "y$" and such things
    full emacs line editing
    line editor is programmable via shell functions
    - access and manipulate editor state via builtins and parameters
    - user-defined `widgets' behave like other editor functions

    - keymap customisation
    - example functions provided
    incremental history search
    magic-space history
    spelling correction
    array parameters
    associative array parameters
    tie parameters a la path/PATH, e.g. ld_library_path/LD_LIBRARY_PATH
    $MACHTYPE, $VENDOR and $OSTYPE identify the host machine
    $LINENO, $RANDOM, $SECONDS, $cdpath, $COLUMNS, $fignore, $HISTCHARS, $mailpath
    $UID, $EUID, $GID, $EGID and $USERNAME can be assigned to
    with autocd option, typing a directory name by itself is the same as
    typing "cd dirname"
    incremental path hashing
    automatic process time reporting for commands that run over a certain limit
    full tcsh-style prompt substitution plus conditional prompt expressions
    utmp login/logout reporting
    with histverify option, performing csh-style history expansions causes the
    input line to be brought up for editing instead of being executed
    with sunkeyboardhack option, accidentally typed trailing ` characters
    are removed from the input line (for those of you with Sun keyboards :-) )
    "cd old new" replaces "old" with "new" in directory string
    generalized argument completion, new system based on shell functions:
    - highly context sensitive
    - large (and I mean large) set of completions supplied, from a2ps to zstyle
    - partial file path completion
    - spelling correction and approximate completion of any completable word
    - highly configurable expansion of shell arguments
    - completion list colouring [`colorizing' for you lot over there]
    - selection of completion elements with the cursor
    - full scrolling of lists (in optional module)
    - completion of words from the history list
    - `styles' feature for versatile configuration
    - `tags' feature for choosing completions preferentially
    - `match' specifications, allowing e.g.
    - variant forms: NO_glob, noglob, _NOGLOB_ all from the keyword glob
    - partial-word matches with arbitrary anchors, e.g.
    z_t.c -> zle_tricky.c
    c.u.s -> comp.unix.shell
    - complete control over case-insensitive matching
    - can be defined globally or for individual completions
    - bindable special completion functions
    menu completion: pressing TAB repeatedly cycles through the possible matches
    prompt on right side of screen
    directory stacks
    history datestamps and execution time records
    command scheduling (like at(1), but in the shell's context)
    history datestamps and execution time records
    command scheduling (like at(1), but in the shell's context)
    tty mode freezing
    up to 9 startup files (but you only need 1 or 2)
    really 8-bit clean, and we mean it this time
    which -a cmd lists all occurrences of "cmd" in the path
    floating point support
    dynamically loadable binary modules, supplied modules include
    - an FTP client which runs in the shell, with function suite
    - math functions
    - builtin interface to the `stat' system command
    - builtin versions of standard commands (mv, ln, etc.) for emergencies
    - special parameters to access internal state of hash tables etc.
    - special associative array to access contents of files directly
    - profiler for shell functions
    - a pseudo-terminal handler, for purposes like `expect'
    - builtins for interaction with termcap and terminfo