There are many shell built-in variables which are used for administrating and writing shell scripts. In this post we will see important built-in variables and their importance. Please add any other built-ins which are useful for administration and for shell scripting.
Note: in order get present values of these variables use echo command to get them. For example if you want to see present shell then you can give echo $SHELL to get the value.
$SHELL –Gives present shell
$HISTSIZE –Gives the size of number of Commands that can be accommodated in History file
$HISTFILE –To get the history file location
$USER –Displays username
$EUID –Display UserID.
$GROUPS – To get GID info.
$PWD –Display’s present working Directory.
$HOSTNAME –Displays hostname.
$HOME –Give you user’s home directory.
$HOSTTYPE or $MACHTYPE – To get host architecture ie 32bit or 64 bit.
$OSTYPE –Detect OS, such as gnu Linux, sun sol etc. Useful for controlling the shell script flow.
$TERM –Gives you terminal name.
$TMOUT –Exit the shell, if no activity was there on terminal, useful for securing the server.
$PATH –Get path to all the binaries ie commands
$PIPESTATUS –To get exit status of piped output.
$BASH_VERSION –To get bash version. Useful for controlling the shell script flow.
$PPID –Get parent process ID.
$PS1, $PS2, $PS3, $PS4 –Different prompts. These are useful for menu driven scripts.
In Scripting
$RANDOM –To get a random number, very much useful for giving random passwords for new users.
$LINENO –To get what is the present line number the script is executing. Useful for debugging a shell script.
$REPLY –REPLY holds last read value.
$SECONDS –To get number of seconds the script is running.
Positional parameters: $1, $2, $3, $4, $5, $6, $7, $8, $9
$0 –Gives script name
$* –All positional parameters
$@ All positional parameters with spaces
$# –Number of Parameters
$$ –Current Process ID
$! –ID of Background job
$? –Error or exit status
$_ –Get the previous command last argument
Latest posts by Surendra Anne (see all)
- Docker: How to copy files to/from docker container - June 30, 2020
- Anisble: ERROR! unexpected parameter type in action:
Fix - June 29, 2020 - FREE: JOIN OUR DEVOPS TELEGRAM GROUPS - August 2, 2019
- Review: Whizlabs Practice Tests for AWS Certified Solutions Architect Professional (CSAP) - August 27, 2018
- How to use ohai/chef-shell to get node attributes - July 19, 2018