trilha / arco 1 · onde eu estou
o que é cat e o que ele faz
o arquivo parece idêntico ao que funciona. o script não roda, a variável chega com um caractere a mais, e o cat mostrou tudo certinho. o cat mostra o que está no arquivo. o terminal esconde parte.
em poucos minutos: o que o cat faz, o que o -A revela que o olho não vê, e o erro que zera um arquivo antes de você ler. a pílula fica no final.
a aula já funciona: lê, treina no terminal e faz o quiz.
escolhe a camada
em uma frase
é abrir a carta e ler em voz alta. se a carta tem uma letra invisível, quem lê não enxerga.
para quem está começando
lê um ou mais arquivos e escreve o conteúdo na tela, na ordem em que você passou. não edita nada, só mostra.
a fonte da verdade
o cat lê os bytes do arquivo e escreve na saída, sem interpretar. quem esconde é o terminal: o byte 13 (CR) manda o cursor para o começo da linha e não desenha nada. o cat -A troca o byte invisível por um nome: ^M.
o número por trás do nome
o ^M é o byte 13, o retorno de carro. o fim de linha do Linux é só o byte 10. o do Windows é 13 e 10 juntos, por isso cada linha ganha um byte a mais.
mac vs linux
no mac o cat é do bsd e não tem -A. o equivalente é cat -et: mostra o ^M e o $ do fim de linha.
agora você
um linux de verdade, só seu, apagado quando você sai.
mostra o arquivo env-crlf, o que veio de um editor do Windows.
cat env-crlfpede ao cat para mostrar o que está escondido, no mesmo arquivo.
cat -A env-crlfenv-unix e env-crlf têm as mesmas duas linhas de texto. o wc -c conta os bytes. qual deles é maior?
numera as linhas do env-unix.
cat -n env-unixroda o deploy.sh pelo nome. ele tem o mesmo problema do env-crlf, na primeira linha.
./deploy.sh
cuidado: cat a b > a zera o a antes de ler
o arquivo ~/juntar.sh junta o extra.env no fim do producao.env, na pasta ~/config. só que o cat dele escreve no mesmo arquivo que lê. o shell zera o arquivo de saída antes de o cat abrir. passo 1: veja o estrago. rode ~/juntar.sh e depois cat config/producao.env. o arquivo ficou vazio, ou quase. para trazer tudo de volta, digite restaurar-env (só esse nome, sem ./ e sem .sh). passo 2: conserte o script. abra com nano ~/juntar.sh. para salvar: ctrl+o e enter. para sair: ctrl+x. passo 3: teste. rode ~/juntar.sh de novo e confira com cat config/producao.env que as linhas antigas continuam e as novas entraram no fim.
a pílula
cat arquivo | mostra o conteúdo |
cat -A arquivo | mostra o ^M e o fim da linha |
cat -n arquivo | numera as linhas |
cat -A mostra o que o terminal esconde.