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:
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)
É 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.
Pode usar um simples echo.
echo “CONTEÚDO” >> ~/.bash_profile