Como eu exibo uma mensagem quando faço logon?

1

Estou tentando exibir uma mensagem quando faço logon no Linux Mint 17.2 . Eu tentei vários métodos sem sucesso:

1) Eu criei um arquivo /home/myusername/Desktop/startup-message.sh da seguinte forma:

#!/bin/bash
echo "My startup message"
pause
exit

Tornei o arquivo executável e verifiquei se ele funciona em uma linha de comando, por exemplo

bash "/home/myusername/Desktop/startup-message.sh"

ou

sh -c "/home/myusername/Desktop/startup-message.sh"

Então eu usei o recurso 'Startup Application' da Mint e adicionei uma nova entrada. Eu tentei:

  "/home/myusername/Desktop/startup-message.sh"
  bash "/home/myusername/Desktop/startup-message.sh"
  sh -c "/home/myusername/Desktop/startup-message.sh"

com e sem aspas ao redor do nome do caminho. Em todos os casos, nada foi exibido e a "pausa" foi ignorada.

Por fim, adicionei um comando para copiar um arquivo após a pausa e o arquivo foi copiado. Portanto, parece que echo e pause são ignorados em um arquivo de inicialização, presumivelmente porque nenhum terminal está aberto?

2) Eu tentei adicionar a mensagem a /etc/profile , mas a mensagem não apareceu quando eu fiz o login.

3) Eu tentei adicionar a mensagem a /etc/motd , mas a mensagem não apareceu quando eu me conectei.

Então, como posso executar essa tarefa simples?

    
por cdgoldin 09.08.2015 / 23:19

2 respostas

1

Você está confundindo a função echo . echo será impresso no descritor de arquivo de saída padrão. Se você já tem um terminal aberto, esse terminal é geralmente a saída padrão dos comandos / scripts que você executa dentro dele. Por si só, echo não abrirá um terminal.

Se você quiser exibir uma mensagem na inicialização, uma maneira mais "gráfica" seria usar algo como zenity :

zenity --info --text "Hello, world!"

Se você colocar isso no seu script de inicialização, você verá uma caixa de mensagem exibida para esse efeito.

Além disso, motd imprime sua mensagem para logins baseados em texto (como um login em um terminal virtual ou um login por meio de ssh ), por isso não fará o que você quer.

Se você quiser especificamente abrir um terminal na inicialização, poderá fazer com que o seu script faça algo como:

xterm -e 'bash -c "echo My startup message;sleep 10"'
    
por 09.08.2015 / 23:42
0

Por que não adicionar esse eco em ~/.bashrc ou ~/.bash_profile ?

Mais informações em Uma explicação de .bashrc e .bash_profile

Both the ~/.bashrc and ~/.bash_profile are scripts that might be executed when bash is invoked. The ~/.bashrc file gets executed when you run bash using an interactive shell that is not a login shell. The ~/.bash_profile only gets executed during a login shell.

    
por 09.08.2015 / 23:49