#!/bin/bash export a='good' echo $a # # bad # snafu() { # a='broken' # } # # usual fix by using local # snafu() { # local a='broken' # } # # subshell version also possible, no local needed # # https://cuddly-octo-palm-tree.com/posts/2021-10-31-better-bash-functions/ snafu() ( a='broken' ) snafu echo $a