Software >> OS >> Unix >> shells >> Comparison of commands in sh bash ksh and csh

 

sh bash ksh csh Meaning/Action
$ $ $ % Default user prompt
  >| >| >! Force redirection
> file 2>&1 &> file or > file 2>&1 > file 2>&1 >& file Redirect stdout and stderr to file
  { }   { } Expand elements in list
`command` `command` or $(command) $(command) `command` Substitute output of enclosed command
$HOME $HOME $HOME $home Home directory
  ~ ~ ~ Home directory symbol
  ~+, ~-, dirs ~+, ~- =-, =N Access directory stack
var=value VAR=value var=value set var=value Variable assignment
export var export VAR=value export var=val setenv var val Set environment variable
  ${nnnn} ${nn}   More than 9 arguments can be referenced
"$@" "$@" "$@"   All arguments as separate words
$# $# $# $#argv Number of arguments
$? $? $? $status Exit status of the most recently executed command
$! $! $!   PID of most recently backgrounded process
$- $- $-   Current options
. file source file or . file . file source file Read commands in file
  alias x='y' alias x=y alias x y Name x stands for command y
case case case switch or case Choose alternatives
done done done end End a loop statement
esac esac esac endsw End case or switch
exit n exit n exit n exit (expr) Exit with a status
for/do for/do for/do foreach Loop through variables
  set -f, set -o nullglob|dotglob|nocaseglob|noglob   noglob Ignore substitution characters for filename generation
hash hash alias -t hashstat Display hashed commands (tracked aliases)
hash cmds hash cmds alias -t cmds rehash Remember command locations
hash -r hash -r   unhash Forget command locations
  history history history List previous commands
  ArrowUp+Enter or !! r !! Redo previous command
  !str r str !str Redo last command that starts with "str"
  !cmd:s/x/y/ r x=y cmd !cmd:s/x/y/ Replace "x" with "y" in most recent command starting with "cmd", then execute.
if [ $i -eq 5 ] if [ $i -eq 5 ] if ((i==5)) if ($i==5) Sample condition test
fi fi fi endif End if statement
ulimit ulimit ulimit limit Set resource limits
pwd pwd pwd dirs Print working directory
read read read $< Read from terminal
trap 2 trap 2 trap 2 onintr Ignore interrupts
  unalias unalias unalias Remove aliases
until until until   Begin until loop
while/do while/do while/do while Begin while loop