You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.3 KiB
44 lines
1.3 KiB
3 years ago
|
+++
|
||
|
title = "Um Shell por Dia: Sub comandos"
|
||
|
date = 2021-09-21
|
||
|
|
||
|
[taxonomies]
|
||
3 years ago
|
tags = ["books", "por dia", "shell", "subcomandos"]
|
||
3 years ago
|
+++
|
||
|
|
||
|
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.
|