On a host with multiple Oracle versions in multiple Oracle homes, it might be prove hard to quickly determine the Oracle version in a shell script. I came across the following method and like to share it.
First, grep the line from /etc/oratab which contains the ORACLE_SID at the beginning of that line:
grep -i ^$ORACLE_SID: /etc/oratab
Then cut everything behind the semicolon away:
cut -f2 -d:
this gives you the Oracle home path.
Now cut out everything behind the first dot:
cut -f1 -d.
Taking the basename, will remove the path and leave the Oracle version.
In one statement it will become:
VERSION=$( basename $(grep -i ^$ORACLE_SID: /etc/oratab | cut -f2 -d: | cut -f1 -d. ) )
I know that there are different ways. Suggestions welcome!