cat file: imprime antes do prompt “user: /”

0
O arquivo

contém apenas 1 linha:

aaa

quando eu executo o arquivo "cat" ele é mixado para o nome de usuário

user /dir : cat file
aaauser /dir :

Qual poderia ser o problema?

Informação extra:

talvez isso não esteja definido corretamente em bashrc? ?

PS1='\u \W : '

ATUALIZAÇÃO:

não deveria haver uma solução além de incluir uma nova linha no arquivo?

Por que não haveria cuidado com os elementos que podem distorcer o prompt da linha de comando? (por não ter uma nova linha)

    
por Gilles 28.02.2017 / 14:58

2 respostas

1

Seu arquivo não tem uma nova linha no final. Como resultado, o prompt do shell é colocado logo no final. Você poderia consertar isso adicionando-o.

printf '\n' >> file

Você pode recriar esse problema criando um arquivo sem uma nova linha no final. (O sinal -n diz ao echo para não adicionar uma nova linha no final.)

[zbrady@server ~]$ printf 'test' > testfile
[zbrady@server ~]$ cat testfile
test[zbrady@server ~]$
[zbrady@server ~]$ printf '\n' >> testfile
[zbrady@server ~]$ cat testfile
test
[zbrady@server ~]$
    
por 28.02.2017 / 15:13
1

Como já foi respondido, seu arquivo tem uma linha final incompleta (a última personagem não é uma nova linha).

Em relação à sua pergunta atualizada "por que não haveria cuidado com a elementos que podem distorcer o prompt de linha de comando? ", bem, o gato o comando de fato não sabe ou geralmente se preocupa com terminais; isto apenas copia seus arquivos de entrada para sua saída padrão.

Se você quiser evitar esse tipo de problema, use um pager adequado, como menos, em vez disso.

    
por 28.02.2017 / 15:27