Script shell para cd e ls automaticamente no macOS

0

Estou executando o macOS Sierra e tentando gravar um script de shell que me permitirá usar um comando para cd e ls ao mesmo tempo. Estou saindo deste tópico , mas não tive sorte em adaptá-lo ao meu script .

O diretório: /usr/local/bin/

O nome do arquivo: cdls

O código:

#!/bin/bash
cdls() { builtin cd "$@" && ls; }

Eu nunca escrevi um script de shell além de um simples arquivo echo hello world , então se você pudesse me apontar na direção certa, seria incrível. Obrigado.

EDIT: /usr/local/bin está no meu PATH

    
por Jay 27.07.2017 / 20:15

2 respostas

1

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.

    
por 27.07.2017 / 20:51
2

O exemplo que você obteve dessa publicação foi para a criação da função bash que você colocaria em .profile . Se você quisesse criar um script em vez de adicionar uma função ao seu perfil, seu script precisaria se parecer com isso.

#!/bin/bash
builtin cd "$@" && ls
    
por 27.07.2017 / 20:39