$BASH
for n in 0 1 2 3 4 5doecho "BASH_VERSINFO[$n] = ${BASH_VERSINFO[$n]}"done# BASH_VERSINFO[0] = 3 # Major version no.# BASH_VERSINFO[1] = 00 # Minor version no.# BASH_VERSINFO[2] = 14 # Patch level.# BASH_VERSINFO[3] = 1 # Build version.# BASH_VERSINFO[4] = release # Release status.# BASH_VERSINFO[5] = i386-redhat-linux-gnu # Architecture
xyz23 (){echo "$FUNCNAME now executing." # xyz23 now executing.}xyz23echo "FUNCNAME = $FUNCNAME" # FUNCNAME =# Null value outside a function.
root# echo $GROUPS0root# echo ${GROUPS[1]}1root# echo ${GROUPS[5]}6
bash$ echo "$IFS"(With $IFS set to default, a blank line displays.)bash$ echo "$IFS" | cat -vte^I$$(Show whitespace: here a single space, ^I [horizontal tab],and newline, and display "$" at end-of-line.)bash$ bash -c 'set w x y z; IFS=":-;"; echo "$*"'w:x:y:z(Read commands from string and assign any arguments to pos params.)
# *** BEGIN DEBUG BLOCK ***last_cmd_arg=$_ # Save it.echo "At line number $LINENO, variable \"v1\" = $v1"echo "Last command argument processed = $last_cmd_arg"# *** END DEBUG BLOCK ***
bash$echo $PIPESTATUS0bash$ls -al | bogus_commandbash: bogus_command: command not foundbash$echo ${PIPESTATUS[1]}127bash$ls -al | bogus_commandbash: bogus_command: command not foundbash$echo $?127
#!/bin/bash# If $IFS set, but empty,#+ then "$*" and "$@" do not echo positional params as expected.mecho () # Echo positional parameters.{echo "$1,$2,$3";}IFS="" # Set, but empty.set a b c # Positional parameters.mecho "$*" # abc,,# ^^mecho $* # a,b,cmecho $@ # a,b,cmecho "$@" # a,b,c