Variáveis devem ser exportadas se forem passadas para o ambiente de comandos externos, mesmo para comandos exec
d. Caso contrário, você terá que source
do script.
Então:
export username="ravi"
echo "The main ProcessId: "
echo $$
exec ./process.sh
Ou:
username="ravi"
echo "The main ProcessId: "
echo $$
. ./process.sh # source the script
Isso ocorre porque, embora exec
herde variáveis de ambiente (assim como quando você normalmente executa um comando), uma variável não exportada não é adicionada ao ambiente.