code: def expandvars(text, environ=None):
      
      if '$' not in text:
          return text
  
      i = 0
      if environ is None:
          environ = os.environ
  
      while True:
          m = ENV_VAR_REGEX.search(text, i)
          if not m:
              break
          i, j = m.span(0)
          name = m.group(1)
          if name.startswith('{') and name.endswith('}'):
              name = name[1:-1]
          if name in environ:
              tail = text[j:]
              text = text[:i] + environ[name]
              i = len(text)
              text += tail
          else:
              i = j
      return text
docs: Expand shell variables of form $var and ${var}.
  
      Unknown variables are left unchanged.
  
      Args:
          text (str): String to expand.
          environ (dict): Environ dict to use for expansions, defaults to
              os.environ.
  
      Returns:
          The expanded string.