Posso ter o shell ignorando a linha de comando às vezes, mas nem sempre?

0

Para fins de depuração, às vezes, acesso uma caixa Linux remota via VNC. Naquela época, alguém pode estar trabalhando na mesma caixa do Linux através do VNC e pode acontecer de eu não ter facilidade para conversar com essa pessoa. Então, essencialmente, o que acontece é que eu inicio uma nova aba no GNOME e digito uma mensagem como esta:

[xxx@slc04lyo abc]$ Hi this is X. I will use the box for some time
Hi: Command not found.

É possível não ter o shell imprimindo o seguinte?

Hi: Command not found.

Se sim, como posso fazer isso seletivamente e nem sempre? Para que, quando necessário, eu possa usar o shell como uma plataforma de chat não processada?

P.S: não preciso ver uma saída. O outro usuário já está no VNC e pode ver o que eu digitei. Então a saída é supérflua.

    
por Geek 16.01.2014 / 12:17

4 respostas

6

Finalize a linha pressionando Ctrl + C . Será parecido com

[user@box ~]$ Are you there?^C

ETA: O Ctrl + C envia o sinal SIGINT, que neste contexto basicamente significa "pare o que estou fazendo e me devolva um aviso". É exatamente o mesmo que quando você está executando um programa a partir do seu prompt e pressionando Ctrl + C - ele mata o programa em execução e retorna seu prompt. Exceto, neste caso, você não iniciou o programa.

Isso também pode ser útil em outras situações, por exemplo, quando o gato dança em todo o teclado ...

    
por 16.01.2014 / 12:30
7

Apenas comente a sua mensagem ao adicionar um # a ela. Dessa forma, nada do que você escreve será processado nem expandido pelo shell.

[xxx@slc04lyo abc]$ # Hello, this is dog. I will use the box for some time

Nota: Se você esquecer de escrever o # primeiro, você pode pressionar Alt + # para comentar a linha atual e volte para o prompt em um único movimento. Isso funciona com prompts que usam GNU Readline , como bash , ksh , mysql , python , zsh e muitos outros.

Aqui está um pequeno resumo dos atalhos de teclado da GNU readline .

    
por 16.01.2014 / 14:38
5

Existe um comando : que não faz nada e ignora seus argumentos (desde quando foi usado para marcar rótulos para uso pelo comando goto ).

$ : Hi this is X. I will use the box for some time
$

[Edit: Como @llua aponta, o shell ainda vai analisar a linha de comando, então quaisquer chaves desequilibradas, aspas, backquotes, etc. irão resultar em um prompt de continuação, e ponto-e-vírgula, pipe, etc. terminará o comando .]

Se você quiser um bate-papo bidirecional com o outro usuário, digite cat >/dev/null e digite tudo o que deseja; não haverá saída além do que você digita. Digite Ctrl-C para finalizar o cat .

$ cat >/dev/null
Are you there?
yes I am.
^C
    
por 16.01.2014 / 12:27
1

Você pode simplesmente digitar echo Hi this is X. I will use the box for some time no?

Se você quiser evitar qualquer mensagem de saída, também pode considerar:
echo Hi this is X. I will use the box for some time &> /dev/null ele redirecionará o erro e a saída desse comando em null . == > sem saída.

Você também pode usar o comentário assim:
# Hi this is X. I will use the box for some time
Se você estiver usando um shell que não use # como marca de comentário, apenas use o que você está acostumado.

    
por 16.01.2014 / 12:21