imprime a última linha de !! comando

0

então eu quero poder imprimir helloworld usando o comando !! . Eu tentei criar um arquivo de texto com o texto helloworld nele. Então eu digo

cat textFileName

Imprime helloworld . Então eu digo

!!

e imprime

cat textFileName
helloworld

Eu tentei usar tail , mas não funcionou. Eu quero escrever comandos de tal forma que !! é usado e somente helloworld é impresso.

Obrigado

    
por Haz 07.09.2015 / 03:41

3 respostas

1

Adicionando ao comentário de Jeff, ele repete o comando anterior e, pelo menos, em todos os bashes que usei, também será impresso o comando para você ver o que acabou de fazer, o que pode explicar o cat textFileName que você está vendo. Essa saída é gravada no terninal, não impressa em stdout ou stderr. Por exemplo:

$ cat textFile
helloworld

$ !!
cat textFile
helloworld

$ !! &>/dev/null
cat textFile &>/dev/null

Para que a linha que está sendo impressa seja exibida apenas para você por sua ajuda, ela não faz parte da saída que seria exibida, digamos, em um pipeline se você usasse !!

    
por 07.09.2015 / 03:55
0

Eu estava "inspirado" esta tarde pelo requisito atualizado:

Use the !! command such that helloworld (and nothing more) is printed on standard out, and nothing is printed on standard error when the command is entered. You can precede your command with other commands (e.g., to create a file, run other commands, etc.) and/or pass options or arguments to your commands. And yes, nothing more means nothing more.

... o que parece ser suficientemente inventado para eu sugerir essa resposta / solução alternativa:

exec ksh
PS1="helloworld"
!! 2>/dev/null
    
por 07.09.2015 / 23:16
0

Consegui descobrir as coisas.

Eu poderia estar em uma pasta sem arquivos, então criei um alias

alias helloworld=ls

então eu chamo

helloworld

então eu chamo !!

e tudo o que seria impresso seria

helloworld

Obrigado a todos!

    
por 08.09.2015 / 01:13