Translate

Image of Modern Operating Systems (3rd Edition)
Image of Advanced Programming in the UNIX Environment, Second Edition (Addison-Wesley Professional Computing Series)
Image of Android Wireless Application Development
Image of Beginning Google Maps API 3

Bash-like Customizable Prompt in Korn Shell

Bash has built-in support for extensive PS1 prompt customization using parameterless macros. As a result many people customize their shell prompts. There is no equivalent built-in support for PS1 customization in ksh93 but such support can easily be added using a discipline function. This post provides an example of such a PS1 discipline function. Add the following discipline function to your ~/.kshrc and ensure that ~/.kshrc is included in your ~/.profile shell startup script which, by the way, only gets executed at login if ksh93 is your default shell. function PS1.set { typeset prefix remaining=${.sh.value} var= n= k= set -A

Dynamically Updating Xterm Title using Ksh93

While it is easy to dynamically set your shell prompt and the title of your terminal window if you are using the bash shell, it is far more difficult to do so in the Korn Shell. Typically, as in Rich Lister’s How to change the title of an xterm, the offered solution is something like the following: HOST=`hostname` HOST=${HOST%%.*} PS1=’^[]0;${USER}@${HOST}: ${PWD##${HOME}/}^Gksh$ ‘ The problem with such a solution is that it sets the prompt and the xterm window title only once. If you wish to dynamically set the xterm title and the shell prompt, you must use a Korn shell

Zero Padding Brace Expansions in the Korn Shell

Both bash and zsh shells support leading zeros in ranges: $ echo {1..10} 1 2 3 4 5 6 7 8 9 10 $ echo {01..10} 01 02 03 04 05 06 07 08 09 10 $ echo {001..010} 001 002 003 004 005 006 007 008 009 010 $ From the bash manpage section on brace expansion: Supplied integers may be prefixed with 0 to force each term to have the same width. When either x or y begins with a zero, the shell attempts to force all generated terms to contain the same number of digits, zero-padding where

The Time Keyword in Bash

The word time is one of the bash shell reserved words. It is not a bash shell builtin. $ builtin time bash: builtin: time: not a shell builtin Bash does support the older Bourne shell keyword times as a builtin. This builtin prints out the user and system times used by the shell and its children. So where is the time reserved word used in the bash shell? It is primarily intended for printing pipeline timing statistics. From the current online bash documentation: The format for a pipeline is [time [-p]] [!] command1 [| command2 …] The output of each

Case Insensitive File Listings

In general, Linux filenames are case-sensitive. So how case you list the files in your current directory in a case-insensitive way? Technically, you are looking to perform case-insensitive globbing. Here are some ways: # touch DEMO demo DeMo # ls -l [Dd][Ee][Mm][Oo] -rw-r–r–. 1 root root 0 Mar 24 11:39 demo -rw-r–r–. 1 root root 0 Mar 24 11:39 DeMo -rw-r–r–. 1 root root 0 Mar 24 11:39 DEMO # ls -l | grep -i demo -rw-r–r–. 1 root root 0 Mar 24 11:39 demo -rw-r–r–. 1 root root 0 Mar 24 11:39 DeMo -rw-r–r–. 1 root root 0 Mar