Это единственный способ, которым я знаю, делать то, что вы хотите:
В foo.sh у вас есть:
#!/bin/bash
echo MYVAR=abc123
И когда вы хотите получить значение переменной, вам нужно сделать следующее:
$ eval "$(foo.sh)" # assuming foo.sh is in your $PATH
$ echo $MYVAR #==> abc123
В зависимости от того, что вы хотите сделать и как вы хотите это сделать, можно использовать предложение Дугласа Лидера об использовании источника, но он будет источником всего файла, функций и всего. Используя eval, будет оцениваться только то, что будет отображено.