Como ignorar teclas pushd

0

Eu tenho um script bash no qual é necessário especificar chaves e parâmetros. Eu criei um comando para ele usando o alias.

alias command="pushd /path; ./somescript.sh; popd"

Depois que o script faz o trabalho, preciso retornar ao diretório do qual o script foi chamado.

Mas recebo um erro:

bash: popd: -o: invalid number
popd: using: popd [-n] [+N | -N]

O idioma do meu sistema não é inglês, desculpe se no original parece diferente. O que devo fazer?

    
por MurelloS 25.12.2017 / 18:21

1 resposta

0

Isso funciona bem:

$ alias foo="pushd /; ls -ld ./tmp; popd"
$ foo
/ ~
drwxrwxrwt 12 root root 4096 Dec 25 19:30 ./tmp/
~

Mas se você precisar passar parâmetros para o comando do meio do alias, será necessário usar uma função. Caso contrário, os parâmetros são apenas adicionados ao final do alias, então eles vão como parâmetros para popd .

Faça isso:

something() {
    pushd /path > /dev/null
    ./somescript.sh "$@"
    popd > /dev/null
}
something -o blahblah

Usando command como o nome do alias / função pode não ser a melhor chamada, é um shell embutido que é usado para chamar comandos externos, pulando funções com o mesmo nome.

    
por 25.12.2017 / 18:41