no way to compare when less than two revisions

Differences

This shows you the differences between two versions of the page.


sh [2014/09/26 20:57] (current) – created - external edit 127.0.0.1
Line 1: Line 1:
 +====== #!/bin/sh ======
  
 +  * [[bash]]
 +  * [[csh]]
 +  * [[ksh]]
 +  * [[tcsh]]
 +  * [[zsh]]
 +
 +  * [[http://www.bo.infn.it/alice/alice-doc/mll-doc/impgde/node5.html|Bourne shell programming]]
 +  * [[http://www.mcsr.olemiss.edu/unixhelp/shell/oview1.1.html|Summary of shell facilities]]
 +  * [[http://mywiki.wooledge.org/SignalTrap|Capturing signal traps]]
 +
 +''sh'' uses different syntax for operators than ''bash''.
 +
 +Use ''-o'' for or in place of ''||'' and ''-a'' for and in place of ''&&''.
 +
 +== Shell Symbols ==
 +
 +  * **$1..$9** - arguments
 +  * **$0** - process name
 +  * **$#** - number of arguments
 +  * **$?** - exit status
 +  * **$$** - PID of this shell
 +  * **$!** - PID of the last background command
 +  * **$-** - option supplied at shell call (?)
 +  * **$*** - all arguments
 +  * **$@** - all arguments with quotes
 +
 +== Conditional Statements ==
 +
 +  * **-a** and (has higher precedence than -o)
 +  * **-o** or
 +
 +== String Operators ==
 + 
 +  * **=** or **==** equal to
 +  * **-n** string is not null
 +  * **-z** string is null, that is, has zero length
 +
 +== Numeric Operators ==
 +
 +  * **-eq** number equals
 +  * **-ne** number does not equal
 +  * **-gt** greater than
 +  * **-ge** greater than or equal to
 +  * **-lt** less than
 +  * **-le** less than or equal to
 +
 +== File Operators ==
 +
 +  * **-e** file exists
 +  * **-f** file is not a directory or device file
 +  * **-d** file exists and is a directory
 +  * **-h** file exists and is a symlink
 +  * **-s** file exists and has a size greater than zero
 +  * **-w** file exists and is writeable
 +  * **-x** file exists and is executable
 +  * **-r** file exists and is readable
 +  * **-b** file is a block device
 +  * **-c** file is a character device
 +  * **-p** file is a pipe
 +  * **-S** file is a socket
 +  * **-O** you are owner of file
 +  * **-G** you are group owner of file
 +
 +== Built-in commands ==
 +
 +  * **:** - null command
 +  * **. file** - execute command in current shell
 +  * **read** - assign //var// from //stdin//
 +  * **readonly** - mark //var// as read only
 +  * **trap** - trap signals
 +  * **type** - inidicate how the shell interprets the command
 +  * **exec** - execute command in place of current shell without creating a new process
 +  * **hash** - rehash command table
 +
 +== Redirect stderr ==
 +
 +<code>
 +echo test 2> /dev/null
 +</code>
 +
 +== Redirect stderr to stdout ==
 +
 +<code>
 +echo test 2>&1
 +</code>
 +
 +=== String Comparison ===
 +
 +When checking for string length, include the string in quotes.
 +
 +Both of these will return true:
 +
 +<code>
 +[ -n string ]
 +[ -n ]
 +</code>
 +
 +This will return false:
 +
 +<code>
 +[ -n "" ]
 +</code>

Navigation
QR Code
QR Code sh (generated for current page)