Aliasing gedit para suprimir a saída do terminal

1

Eu sou SSH em uma placa embutida (Jetson TK1 rodando o Ubuntu 14.04). Eu uso a opção -X para que eu possa usar o gedit para editar arquivos de texto. Quando executado a partir de um terminal, o gedit lança um monte de lixo no terminal. É fácil se locomover digitando

gedit [file] > /dev/null 2>&1 &

com o último e comercial enviando o processo para o segundo plano para que eu possa continuar usando o terminal. Isso é cansativo para digitar toda vez, então eu quero definir um apelido:

alias gedit="gedit $@ > /dev/null 2>&1 &"

no entanto, isso não funciona. Depois que o alias é definido (e para a tentativa inicial eu apenas o defini diretamente na linha de comando do bash), ao digitar

gedit [file]

Bash responde que

-bash: [file]: command not found

e abre o gedit com um arquivo de texto sem título. Remover o e comercial à direita na definição do alias faz com que o alias abra o arquivo especificado conforme o esperado, mas agora, obviamente, não envia o gedit para o segundo plano. O que há de errado?

    
por schrödinbug 28.04.2016 / 16:45

2 respostas

0

Minha resposta é strongmente baseada neste post: link

Um alias não funciona assim, os argumentos são sempre passados para o final do comando. Usando seu alias como exemplo, gedit filename executará o seguinte:

gedit $@ > /dev/null 2>&1 & filename

em vez de

gedit filename > /dev/null 2>&1 &

O que está causando o bash a pensar que você está inserindo um segundo comando chamado filename .

O que você precisa fazer é criar uma função no arquivo ~/.bashrc , que executará o comando gedit:

O seguinte snippet é uma versão ligeiramente modificada do código do drmrgd

function gedit-bg() {
    if [ ! -n "$1" ]; then
        echo "USAGE: gedit-bg <filename>";
    else
        ( gedit "$1" > /dev/null 2>&1 & );
    fi
}

Você precisará registrar novamente para que a alteração entre em vigor. Assim, você poderá usar o método da seguinte forma:

gedit-bg filename
    
por Dan 28.04.2016 / 18:42
0

Os avisos de gedit no servidor que utilizo para contas de alunos distraem muito os alunos. Modificar a resposta de Dan um pouco permite que o aluno ainda digite gedit como de costume. Eu coloquei isso em /etc/profile.d/custom.sh (no Centos 7, mas presumivelmente ele funcionará no Ubuntu também, ou no arquivo .profile do usuário)

function gedit-bg() {
    if [ ! -n "$1" ]; then
        echo "USAGE: gedit <filename>";
    else
        ( \gedit "$1" > /dev/null 2>&1 & );
    fi
}

alias gedit="gedit-bg"
    
por metrprof 06.06.2016 / 05:10