Script de instalação ambiente react native

Olá, estou tentando fazer um script. Mas apenas a parte de inserir as variáveis de ambiente não funciona. Tentei utilizar o sed para inserir essas informações no bash profile e não grava os dados no arquivo. Alguém pode me ajudar?

Segue o exemplo:

Se for possível, envie o texto do script que está editando, ou no mínimo envie o print direto do computador. O JPEG passando pelo Zap é quase ilegível.


A melhor maneira de anexar conteúdo ao fim do arquivo é o cat <<\EOF >> arquivo:

cat <<\EOF >> ~/.bash_profile
export ANDROID_HOME=$HOME/AndroidSdk
[resto das linhas]
EOF

(cuidado que > substitui em vez de acrescentar, e <<EOF sem \ interpreta variáveis)

Porque não sed, especialmente com aspas duplas

É necessário você “escapar” as novas linhas com \, mais ou menos conforme o seguinte exemplo:

$ cat primatas
macaco
$ sed '$abonobo
> gorila' primatas
sed: -e expressão #1, caractere 11: há caracteres sobrando após o comando
$ sed '$abonobo\
> gorila' primatas
macaco
bonobo
gorila

Segundo lugar, com aspas duplas, além de ter que por um \ antes do $ que simboliza “última linha”, $HOME, $PATH e $ANDROID_HOME vão ser expandidos/interpretados na hora que o sed estiver sendo rodado. Vão essas linhas pro .bash_profile

export ANDROID_HOME=/home/dxdns/AndroidSdk # e não $HOME/AndroidSdk
export PATH=[path de agora, quando o sed estiver rodado]:[android_home do tempo do sed - vazio se não tiver]/emulator
export PATH=[path de agora, quando o sed estiver rodado]:[android_home do tempo do sed - vazio se não tiver]/tools
[...]

Como você pode ver, deixar $HOME “solto” vai causar dor de cabeça se for migrar para outro PC com um username de diferente, e $PATH e $ANDROID_HOME “soltos” vai fazer o SDK aí reclamar que não consegue achar ferramentas, mesmo que estejam instaladas (pois o $PATH e $ANDROID_HOME de cada linha está sendo interpretado pouco antes do sed rodar, e não quando o .bash_profile estiver rodando no PC). Além, é claro, mais dor de cabeça se quiser instalar outra coisa que muda o PATH, pois os exports vão estar “engessados” do tempo que o sed rodou.

1 Curtida

Pode usar um simples echo.

echo “CONTEÚDO” >> ~/.bash_profile