Browsing around...
News  News Links  Links Blog  Blog Italiano  Español 
04 - If conditional structure in the bash


The fundamental conditional instruction is slightly different from the traditional notation found in C. Its structure is:

if [condition1]; then
elif [condtion2]; then

The meaning of the different commands is this:
  • if: executes code1 if the [condition1] is true.
  • then: tells where the code to be executed according to the condition begins.
  • elif: equivalent of else if in C. Executes code2 if [condition2] is true, but [condition1] is not true. It also terminates the part of code executed by the previous if / elif.
  • else: executes code3 if none of the previous conditions is true.
  • fi: ends the conditional block.
The following script checks if a file exists:

if [ -f topolino.c ];
  cat topolino.c
  echo "The file does not exists"

File checks
The conditions are always written inside square brackets. Note that the opening bracket should always be followed by a space, and the closing one preceded by a space. A series of operators exists in order to verify files conditions, according to the following syntax:

[ check_operator /etc/file_to_check]

These controls are:

-d:Checks that the file is a directory
-e:Checks that the file exists
-f:Checks that the file is regular
-g:Checks that the SGID bit is set
-r:Checks that the file has the permissions for
reading for the user executing the script
-s:Checks that the file has a non zero dimension
-u:Checks that the SUID bit is set
-w:Checks that the file is writable



No comment present!

Write a comment

You can write here a comment to the article you've just read. Smiles, links and images are not allowed. The maximum comment length is 4000 characters. Please be polite, all the offensive messages will be deleted.

Your comment (lascia bianco!):
Uses (max 25 characters, required)
Web site (max 255 characters, optional)
e-Mail (max 255 characters, optional, will not be published) Your opinion (lascia bianco!):
Comment (max 4000 characters, required):

Valid HTML 4.01 Transitional
E-Mail - 23.22 ms

Valid HTML 4.01 Transitional