Ubuntu – Why is the GID environment variable empty


I try echo $GID but get nothing. However, I can get 1000 by using id -g, what's the differences between them ?

id -u     => 1000
id -g     => 1000
echo $UID => 1000
echo $GID => 

The output of id:

uid=1000(user) gid=1000(user) groups=1000(user),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare),999(docker)

The output of groups:

user adm cdrom sudo dip plugdev lpadmin sambashare docker

Ubuntu version:

Distributor ID: Ubuntu
Description:    Ubuntu 16.04.6 LTS
Release:    16.04
Codename:   xenial

Best Answer

  • I assume you're using bash as your shell. Bash doesn't set a GID variable. The list of Bash variables mentions EUID and UID, but not GID.

    Zsh, on the other hand, does set GID:

    $ bash -c 'echo $GID'
    $ zsh -c 'echo $GID'
  • Related Question