Problema ao dividir o comando com barra invertida no prompt unix

1

Costumo usar a combinação space-backslash () para dividir um comando e seus parâmetros em várias linhas e torná-lo mais legível:

/home/user> ls -ltra \
> file1.txt \
> file2.txt

Recentemente eu usei uma instrução com um formato similar na minha janela de terminal. Como ia usar os mesmos arquivos em várias instruções, decidi destacar \ copiar todo o comando com meu mouse e colá-los em um editor aberto.
Infelizmente,

  1. Eu apenas destaquei com meu mouse as duas linhas de arquivo e
  2. colou-os por engano na mesma janela do terminal:

Assim:

/home/user> > /home/user/file1.txt
> > /home/user/file2.txt

O sistema achou que eu estava sobrescrevendo os arquivos. Os dados foram perdidos. Felizmente, houve backup!

Agora, minha pergunta:

Uma sessão de terminal pode ser reconfigurada para que use um símbolo diferente de > sinal, no início de um comando split? Algo que não terá consequências tão terríveis.

Exemplo:

/home/user> ls -ltra \
# file1.txt \
# file2.txt

UPDATE

Estou usando o shell Korn (/ usr / bin / ksh) em um servidor Solaris. Korn é o shell padrão da empresa.

    
por lamcro 11.07.2014 / 20:51

2 respostas

3

Se você estiver usando um shell sh -compatible (como bash ), esse > prompt é chamado de "prompt secundário". É definido pelo valor da variável PS2 , assim como PS1 define o prompt normal.

Você deve poder alterá-lo para # com bastante facilidade:

PS2='# '

Você pode querer colocar isso em seu ~/.bashrc (ou qualquer que seja o equivalente a qualquer shell que você esteja usando).

    
por 11.07.2014 / 21:04
2

Não se baseia no "sistema". É baseado no seu shell.

Em festança ou outras conchas Bourne

   PS2    The  value of this parameter is expanded as with PS1 and used as
          the secondary prompt string.  The default is ''> ''.
    
por 11.07.2014 / 20:59