Bash-compare-versions: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
mNo edit summary |
||
Line 26: | Line 26: | ||
fi | fi | ||
</pre> | </pre> | ||
If there is a v floating about in your returned string, simply append the following to remove all a-z and A-Z characters. | |||
<pre> | |||
| tr -d [:alpha:] | |||
</pre> | |||
[[Category:bash]] | [[Category:bash]] |
Revision as of 08:03, 22 October 2021
This is a simplistic way to compare version numbers. This is useful for when commands change over time, and you do not know which or what kind of host will have which version of something.
echo -e "2.22\n11.3.4" | sort -V 2.22 11.3.4
printf '%s\n2.15\n' $(ldd --version | sed -n '1s/.* //p') | sort -V | head -n 1
printf '%s\n2.22\n' $(git --version | sed -n '1s/.* //p') | sort -V
Example: (show the git branch you are on)
if [[ $(printf '%s\n2.22\n' $(git --version | sed -n '1s/.* //p') | sort -V) != "2.22" ]]; then echo "Earlier version than cutoff" git rev-parse --abbrev-ref HEAD else echo "Later version of cutoff" git branch --show-current fi
If there is a v floating about in your returned string, simply append the following to remove all a-z and A-Z characters.
| tr -d [:alpha:]