Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Getting and Setting Environment Variables

Exporting just Variables

Assignments prefixed with the export keyword will be exported to recipes as environment variables:

export RUST_BACKTRACE := "1"

test:
  # will print a stack trace if it crashes
  cargo test

Parameters prefixed with a $ will be exported as environment variables:

test $RUST_BACKTRACE="1":
  # will print a stack trace if it crashes
  cargo test

Exported variables and parameters are not exported to backticks in the same scope.

export WORLD := "world"
# This backtick will fail with "WORLD: unbound variable"
BAR := `echo hello $WORLD`
# Running `just a foo` will fail with "A: unbound variable"
a $A $B=`echo $A`:
  echo $A $B

When export is set, all just variables are exported as environment variables.

Unexporting Environment Variables1.29.0

Environment variables can be unexported with the unexport keyword:

unexport FOO

@foo:
  echo $FOO
$ export FOO=bar
$ just foo
sh: FOO: unbound variable

Getting Environment Variables from the environment

Environment variables from the environment are passed automatically to the recipes.

print_home_folder:
  echo "HOME is: '${HOME}'"
$ just
HOME is '/home/myuser'

Setting just Variables from Environment Variables

Environment variables can be propagated to just variables using the env() function. See environment-variables.