Como executar um alias de bash em uma nova janela de tela?

4

No meu .screenrc, tenho várias linhas semelhantes às seguintes:

screen -t qf1 bash

Então, para essa janela, estou atualmente executando o bash. Em vez disso, gostaria de executar o seguinte alias "qf", que é um alias bash que executa o lynx para uma determinada URL.

No entanto, recebo o seguinte erro:

"Cannot exec 'qf': No such file or directory"

Eu sei que provavelmente tem algo a ver com o caminho, mas fornecendo:

screen -t qf1 lynx www.google.com

Não funciona também. Eu sei que estou perdendo algo óbvio. Obrigado!

    
por cat pants 06.05.2013 / 23:42

1 resposta

5

Provavelmente, os aliases do bash não estão disponíveis para a tela. Há algumas maneiras de corrigir isso.

  • Se seus aliases estiverem em .bash_profile , mova-os para .bashrc
  • Inicie seus shells bash com a opção -l para forçar o bash a analisar .bash_profile

Dê uma olhada em esta pergunta para ver um problema semelhante.

EDITAR

Na verdade, existem duas coisas que impedem que isso funcione:

Use a sintaxe da string de comando de bash para passar comandos para a nova janela

    screen -t "YayScreen" bash -c "man screen"

Os aliases são um problema na tela

Crie um script bash com o nome desejado em seu $ PATH (digamos, /bin ), e chame isso da mesma forma que o exemplo acima. Por exemplo, eu tenho um alias muito simples chamado psgrep que procura um processo pelo nome. Eu crio este script como /bin/psgrep :

#!/bin/bash
ps aux | grep -v grep | grep $1

Então, posso adicionar isso ao meu .screenrc :

screen -t "Useless Command" bash -c "psgrep gnome"

Veja esta antiga postagem no fórum do Mac OS X para uma lista mais longa do que não funcionou .

    
por 06.05.2013 / 23:50

Tags