Aparar nova linha no alias bash de uma linha

7

Estou tentando escrever um alias simples no meu terminal Mac OS X para copiar o diretório de trabalho atual. Eu tenho isso:

alias cpwd="echo \'pwd\' | pbcopy; echo \"Copied \'pwd\'\""

Então, posso simplesmente executar o seguinte para copiá-lo:

$ cpwd

O problema é que echo pwd inclui a nova linha no final. Então, quando eu colá-lo, ele é executado imediatamente (se colado em um terminal).

Tudo o que quero fazer é retirar a nova linha de teste, mas nada que eu encontre na internet parece funcionar para mim. Vi várias soluções envolvendo sed , awk e cut , mas não consigo entender. Parece que seria fácil de fazer.

    
por Sean Adkinson 22.12.2012 / 01:20

2 respostas

4

Acredito que isso deve funcionar:

alias cwd="echo -n 'pwd' | pbcopy; echo \"Copied 'pwd'\""

O -n diz "sem nova linha". Ou você pode sempre passar a saída por tr e remover o novo caractere de linha assim:

alias cwd="echo 'pwd' | tr -d "\n" | pbcopy; echo \"Copied 'pwd'\""

Não tenho certeza se você deseja remover o novo caractere de linha à direita do primeiro eco ou de ambos - mas acho que você pode descobrir se funcionará para o primeiro;)

    
por 22.12.2012 / 01:26
0

Não tenho certeza sobre o comando echo do Mac OS X, mas se o argumento -n for fornecido, o echo não exibirá a nova linha:

-n não imprime a nova linha à direita

Atenciosamente ...

    
por 22.12.2012 / 01:29