Eu faria isso digitando o seguinte no terminal:
. cdls /usr/local/bin/
Onde cdls
é um script bash armazenado em minha $PATH
:
#!/bin/bash
cd $1
ls
O .
no comando do terminal origina o script, em vez de usar uma subshell.
O $1
no script bash usa usr/local/bin/
(definido na linha de comando) como um argumento.
Você poderia substituir $1
por qualquer outro diretório no script se sempre quisesse cdls
em um determinado diretório.
Em relação à outra pergunta que você mencionou. A resposta principal recomenda isto:
cdls() { cd "$@" && ls; }
que é uma função e deve ser inserida em .bash_profile
(para macOS) ou .bashrc
(para Linux), em vez de ser usada em um script bash.