echo -e: Um espaço em branco é adicionado antes da segunda frase na primeira frase \ n segunda sentença

-6

No Bash, estou tendo um pequeno problema com o comando echo e uma de suas sequências -e : Um espaço em branco é adicionado antes da segunda sentença em <first sentence> \n <second sentence> .

Este é o meu comando:

echo -e "0 0 * * * ~/cronDaily.sh \n 0 0 * * 0 ~/cronWeekly.sh" | crontab

Este é o meu estado atual (o que está sendo impresso no crontab):

0 0 * * * ~/cronDaily.sh
 0 0 * * 0 ~/cronWeekly.sh

Este é o estado desejado no crontab:

0 0 * * * ~/cronDaily.sh
0 0 * * 0 ~/cronWeekly.sh

O que pode ser feito contra o espaço vazio adicionado após / n após a execução?

Edit: Eu estava pensando em remover o espaço logo após \n mas ele deixa o código menos confortável para ler e eu preferiria uma solução que me deixasse mantê-lo, talvez algum combo de negação, algum espaço reservado que virá depois\n, mas negue o espaço após ele ser impresso (e talvez também antes dele, se houver).

    
por Arcticooling 19.01.2018 / 13:18

2 respostas

4

Basta remover o espaço depois do \n (caractere de escape de quebra de linha):

echo -e "0 0 * * * ~/cronDaily.sh \n0 0 * * 0 ~/cronWeekly.sh" | crontab

#                                  /\
#                                 here

Para agradar sua estética, você também pode dividi-la em dois echo s:

{ echo "0 0 * * * ~/cronDaily.sh" ; echo "0 0 * * 0 ~/cronWeekly.sh" ; } | crontab
    
por Byte Commander 19.01.2018 / 13:21
1
echo -e "0 0 * * * ~/cronDaily.sh  
0 0 * * 0 ~/cronWeekly.sh" | crontab

fará o trabalho. Uma cotação de abertura permite inserir quebras de linha. É claro que a resposta dos Byte Commanders está certa, e você tem que fazer um tradeoff entre legibilidade e orientação na sintaxe do shell.

Os editores de coloração de sintaxe podem ajudar a tornar a fonte mais legível e destacar caracteres especiais como '\ n', o que melhoraria ainda mais a solução Byte Commanders. Mas você tem controle sobre o que o usuário do código irá usar?

    
por user unknown 21.01.2018 / 00:26