Difference between revisions of "Bash:Variables"

From wiki
Jump to navigation Jump to search
Line 18: Line 18:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
==Arithmetics==
+
=Arithmetics=
  
 
Bash and ksh only work with integers.
 
Bash and ksh only work with integers.
Line 36: Line 36:
 
;let VAR+=2
 
;let VAR+=2
 
:Add two to VAR
 
:Add two to VAR
 +
 +
==Special Parameters=
 +
;$0
 +
:Name current procedure
 +
;$1
 +
:First passed argument ($2 is the second, $3... )
 +
;$*
 +
:All arguments given as one string
 +
;$@
 +
:All arguments given as separate strings per parameter
 +
;$#
 +
:The number of passed arguments
 +
;$?
 +
:The returnstate for the last executed command. 0 = OK, all others not.
 +
;$$
 +
:ProcessID of current process, handy to use for temporary files
 +
;$!
 +
:ProcessID of last spawned process.

Revision as of 13:30, 8 March 2019

Bash is a *nix shell. Much more is still in the antiperfect unix site.

echo -n <string>
Print <string> without newline

To check within a startup script (like .bashrc) whether or not Bash is running interactively. Test if $- has an 'i' in it or if $PS1 (the prompt) exists.

case "$-" in
*i*)	echo This shell is interactive ;;
*)	echo This shell is not interactive ;;
esac

if [ -z "$PS1" ]; then
        echo This shell is not interactive
else
        echo This shell is interactive

Arithmetics

Bash and ksh only work with integers.

+, -, *, /, %
add, substract, multiply, divide, modulo.
**
For bash, Exponentiation
10#00012
For bash, force the figure (00012) to be interpreted as decimal. Figures starting with 0 are considered octal by default.
expr <expr>
Voer expr uit, bij boolean wordt 1 (onwaar) of 0 (waar) gegeven
((VAR=x+y))
let VAR=x+y
VAR=$((x+y))
VAR=$(expr x + y)
Calculate and assign to VAR
let VAR+=2
Add two to VAR

=Special Parameters

$0
Name current procedure
$1
First passed argument ($2 is the second, $3... )
$*
All arguments given as one string
$@
All arguments given as separate strings per parameter
$#
The number of passed arguments
$?
The returnstate for the last executed command. 0 = OK, all others not.
$$
ProcessID of current process, handy to use for temporary files
$!
ProcessID of last spawned process.