Se você precisar output.sh para realizar as atribuições dadas em input.txt, você pode fornecer o arquivo de entrada
Então, esse seria o conteúdo de output.sh
l1="" # not needed
l2="" # not needed
source input.txt
Isso produz o que você quer (um valor em l1 de R2):
$ cat - > input.txt <<EOF
> l1="R2"
> l2="R1"
> EOF
$ cat - > output.sh <<'EOF'
> l1="" # not needed
> l2="" # not needed
> source input.txt
> echo $l1
> EOF
$ sh output.sh
R2