1

I have seen How to list variables declared in script in bash? - but it does not help me in this case.

I would like to dump all environment and shell variables that Android Studio 4.0.1 sees on Ubuntu 18.04. The startup script is ./android-studio/bin/studio.sh, and the header is:

$ head -1 ./android-studio/bin/studio.sh
#!/bin/sh

So, it is a sh script (not bash), which in Ubuntu 18.04 is dash:

$ ls -la /bin/sh
lrwxrwxrwx 1 root root 4 Oct  4  2018 /bin/sh -> dash

So, basically, inside the code I can intervene here:

...
CLASSPATH="$CLASSPATH:$IDE_HOME/lib/jna.jar"
CLASSPATH="$CLASSPATH:$JDK/lib/tools.jar"
if [ -n "$STUDIO_CLASSPATH" ]; then
  CLASSPATH="$CLASSPATH:$STUDIO_CLASSPATH"
fi

# dump env - debug
env

# ---------------------------------------------------------------------
# Run the IDE.
# ---------------------------------------------------------------------
IFS="$(printf '\n\t')"
...

So, you can see there is a CLASSPATH variable there, I would like to dump it to stdout. However, just env will not print it - when I run this script, I get:

$ ./android-studio/bin/studio.sh
LESSOPEN=| /usr/bin/lesspipe %s
USER=myuser
LANGUAGE=en_US:en
TEXTDOMAIN=im-config
XDG_SEAT=seat0
SSH_AGENT_PID=1968
XDG_SESSION_TYPE=x11
SHLVL=2
QT4_IM_MODULE=xim
HOME=/home/myuser
OLDPWD=/path/to/android/android-studio/bin
DESKTOP_SESSION=ubuntu
GNOME_SHELL_SESSION_MODE=ubuntu
GTK_MODULES=appmenu-gtk-module:gail:atk-bridge:appmenu-gtk-module:appmenu-gtk-module:appmenu-gtk-module
PS1=\[\033[0;33m\]\u@TMPHIST:\W$\[\033[0;37;1m\] 
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
COLORTERM=truecolor
NVM_DIR=/home/myuser/.nvm
UBUNTU_MENUPROXY=1
MANDATORY_PATH=/usr/share/gconf/ubuntu.mandatory.path
IM_CONFIG_PHASE=2
LOGNAME=myuser
GTK_IM_MODULE=ibus
_=./android-studio/bin/studio.sh
DEFAULTS_PATH=/usr/share/gconf/ubuntu.default.path
USERNAME=myuser
XDG_SESSION_ID=975
TERM=xterm-256color
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
WINDOWPATH=2
PATH=/home/myuser/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/myuser/go/bin
SESSION_MANAGER=local/HPProBook430G4:@/tmp/.ICE-unix/29005,unix/HPProBook430G4:/tmp/.ICE-unix/29005
XDG_MENU_PREFIX=gnome-
S_COLORS=auto
GNOME_TERMINAL_SCREEN=/org/gnome/Terminal/screen/a30d7231_9e1a_47aa_8072_4b4ded3aeded
XDG_RUNTIME_DIR=/run/user/1000
DISPLAY=:0
LANG=en_US.UTF-8
XDG_CURRENT_DESKTOP=ubuntu:GNOME
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
XDG_SESSION_DESKTOP=ubuntu
XMODIFIERS=@im=ibus
GNOME_TERMINAL_SERVICE=:1.975
XAUTHORITY=/run/user/1000/gdm/Xauthority
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
GOPATH=/home/myuser/go
CLUTTER_PAINT=continuous-redraw
SHELL=/bin/bash
QT_ACCESSIBILITY=1
GDMSESSION=ubuntu
LESSCLOSE=/usr/bin/lesspipe %s %s
TEXTDOMAINDIR=/usr/share/locale/
GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1
XDG_VTNR=2
QT_IM_MODULE=ibus
PWD=/path/to/android
CLUTTER_IM_MODULE=xim
XDG_DATA_DIRS=/usr/share/ubuntu:/home/myuser/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop
XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
VTE_VERSION=5202
2020-09-07 06:00:33,977 [   1646]   WARN - com.intellij.ide.ui.LafManager - List.rowHeight = 0 in IntelliJ; it may lead to performance degradation 
...

Nope, no CLASSPATH variable dumped here.

So, how do I dump all environment and shell variables from sh (dash) script?

1 Answer 1

1

The 'env' command will print the environment - variables have to be exported. Either the CLASSPATH is exported later (via export CLASSPATH), or it may be used in the command line (java -cp "$CLASSPATH" ...).

You can get a list of ALL variables (exported variable, and internal shell variables) using the set command.

Sign up to request clarification or add additional context in comments.

1 Comment

Fantastic - many thanks for this answer, @dash-o - I can finally see the CLASSPATH variable (and many others)! Cheers!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.