Não consigo mudar de diretório pelo meu shell script

3 respostas Resolvido
programaçãolinux
T

O comando cd simplesmente não funciona

#!/bin/bash

cd $HOME
clear

echo -n "$USER "
echo -n "uptime -p "
echo -n "date +%d/%m/%y "
echo date +%T

3 Respostas

P

como não funciona?

vc esperava que o seu shell corrente mudasse a “diretorio atual” para o seu $HOME ?

isso não vai acontecer pois o seu shell script é executado em um sub-processo e este não consegue alterar as propriedades do processo corrente. é uma questão de como as coisas são executadas:

shell corrente ( process id 1000 ) -> sub shell ( process id 1001 ) que vai interpretar o conteudo do script.

se vc quer alterar as propriedades do shell corrente, vc precisa executar o script no shell corrente. vc faz isso usando o comando source ou .

bash$ cat foo
cd /tmp

bash$ source foo
# agora vc esta no /tmp
T

ok, entendi, mas como faço isso? Não entendi esse exemplo que me mando.

P
Solucao aceita

vc faz source script.sh

ao inves de ./script.sh

Criado 2 de agosto de 2018
Ultima resposta 3 de ago. de 2018
Respostas 3
Participantes 2