Crie “função” para executar o bash?

1

Eu tenho o seguinte bash:

cd /aPath/
for x in y.*.gz
> do something $file.dd.mm.yyyy >> /anotherPath/aFile
> done

Eu gostaria de passar um argumento para este arquivo que representará o mês para inserir em 'mm'. Então, eu gostaria de poder chamar a partir da linha de comando:

myFunc 08

e seria executado:

cd /aPath/
for x in y.*.gz
> do something $file.dd.08.yyyy >> /anotherPath/aFile
> done

Como faço isso / posso definir algo no meu bash_profile?

    
por user997112 25.09.2017 / 10:04

1 resposta

2

Eu adicionaria a função no meu /home/user/.bashrc

no exemplo

myFunc() {
  mm=$1
  FILES=/home/user/*
  for f in $FILES; do
    if [[ $f == filename.dd.$mm.yyyy ]]; then
      ls -la $f
    fi
  done
}

e lembrando-se de recarregar o arquivo .bashrc com o comando source ~/.bashrc , eu chamaria a função do shell.

mm=$1 obterá o primeiro parâmetro (argumento) passado para a função chamando myFunc 08 e colocará em $mm variable (passo bastante inútil, você pode usar diretamente $1 variable onde quer que você precise na função)

    
por 25.09.2017 / 10:22

Tags