Browse Source

Shell por dia: Subcomandos

master 20210921
Julio Biason 3 years ago
parent
commit
74df9146cb
  1. 1
      content/books/shell-por-dia/_index.md
  2. 43
      content/books/shell-por-dia/subcomandos.md

1
content/books/shell-por-dia/_index.md

@ -12,3 +12,4 @@ hide_content = false
* [Redirecionamento](@./redicionamento.md)
* [Pipes](@./pipes.md)
* [Shells](@./shells.md)
* [Subcomandos](@./subcomandos.md)

43
content/books/shell-por-dia/subcomandos.md

@ -0,0 +1,43 @@
+++
title = "Um Shell por Dia: Sub comandos"
date = 2021-09-21
[taxonomies]
tags = ["books", "shell por dia", "subcomandos"]
+++
Algumas vezes queremos que parte do comando que será executado seja calculado
automaticamente e, para isso, temos sub comandos.
Por exemplo, digamos que você queria executar um comando e mandar para um
arquivo com a data atual. Existe um comando pronto para mostrar a data atual,
`date`, que permite que o formato de saída seja definido como, por exemplo,
`date +"%Y%m%d"`, que gera algo como "20210921".
Apenas para lembrar, você pode querer fazer
```
comando > 20210921.txt
```
E amanhã fazer
```
comando > 20210922.txt
```
Só que isso significa que não é possível automatizar isso. Quer dizer, não
*daria*, se não fossem os subcomandos. E para usar subcomandos, são usadas
crases (ou, no original, "back-ticks"). No nosso exemplo
```
comando > `date +"%Y%m%d"`
```
E, assim, podemos automatizar a geração e não se preocupar em ver o dia correto
todo dia.
Mas um aviso: não são todos os shells que suportam esse formato. Fish, por
exemplo, requer que os subcomandos sejam executando entre parênteses (`comando >
(date +"%Y%m%d")`) e Bash suporta o formato de `$(subcomando)`. Portanto, cuide
qual o shell está sendo executado antes de sair usando os ticks.
Loading…
Cancel
Save