Korn shell - some nuggets
Archive - Originally posted on "The Horse's Mouth" - 2008-05-30 08:31:11 - Graham EllisI've presented some Korn Shell Training over the last couple of days ,,, and I cut and pasted a few snippets which I thought might be of interest.
• Korn Shell - looping through a series of outputs from a command
$ for file in `ls`; do
> echo $file
> done
LinuxBasicsAdmin.book.pdf
Sefas.book.pdf
dat_backup
dat_backup2
dat_backup3
filestat
funky
gvar
hello_korn
kornserver.cgi
ksh.book.pdf
ksh.ps
numtee
pippa
script_korn
selk
sharon
stroppy
townline
tracey
$
• Korn shell - integer (counting) loop
$ for (( kay=0 ; $kay<10 ; kay=$kay+1 )) ; do
> echo $kay
> done;
0
1
2
3
4
5
6
7
8
9
$
• there are a lot of clever modifiers in the Korn shell you can use on variables such as these which will let you look at part of a string.
$ stwing="jhkasdhjkasdhjkadshjkasdtqwetyuqwe678678sdhjksdhjkasd"
$ print ${stwing:40}
sdhjksdhjkasd
$ print ${stwing:40:5}
sdhjk
$
• using read to read from stdin in ksh, including a prompt.
$ read treacle?pie
pieCustard
$ echo $treacle
Custard
$
• capturing STDERR into a variable in the Korn Shell
$ tryme=`mkdir 2008-05-29 2>&1`
$ echo $tryme
mkdir: cannot create directory `2008-05-29': File exists
$
• branching on the status returned by a command in the Korn Shell
if mkdir 2008-05-29
then
echo yay
else
echo nay
fi
See also Korn Shell Training and Korn Shell Resource Index.
Look back at the previous entries on this blog so see examples of environment settings in the Korn Shell, and also how variables may be used for Strings, Integers and as arrays.