DEV Community

abbazs
abbazs

Posted on

How to get the ubuntu code name from elementary os?

Often when we try to install any software in elementary os using the terminal commands like the following:

wget -O- https://apt.releases.hashicorp.com/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install vagrant
Enter fullscreen mode Exit fullscreen mode

The script looks for a valid ubuntu version by executing lsb_release -cs. And it will return code name of elementary os but not the ubuntu code name. But what is required is ubuntu code name. The following script does not exactly solve the issue. But it is handy to fetch the ubuntu code and replace it where needed.

# Reads the /etc/os-release file and reads the file into a dictionary named os_release. 
# Please read https://unix.stackexchange.com/a/433245/298979 to understand why sourcing and awk are poor ideas to replicate the same in those methods.
if test -r /etc/os-release
    then
        declare -A os_release
        while IFS="\=" read -r key value
            do
                os_release[$key]=$value
        done < /etc/os-release
        alias uc="echo ${os_release[UBUNTU_CODENAME]}" #Get ubuntu code name
    else
        echo "Unable to read /etc/os-release file to get ubuntu code"
fi
Enter fullscreen mode Exit fullscreen mode

Top comments (0)