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

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

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

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

vc faz source script.sh

ao inves de ./script.sh