Variável como comando

0

Eu quero definir uma variável com o nome do terminal e usar essa variável para abrir o terminal em tela cheia. Seria algo como:

if [ "$DESKTOP" = "gnome" ]; then
    if command_exists gnome-terminal; then
        terminal=$(gnome-terminal)
    fi
elif [ "$DESKTOP" = "mate" ]; then
    if command_exists mate-terminal; then
        terminal=$(mate-terminal)
    fi
fi
$terminal --working-directory="$HOME/code/" --window --full-screen &

Como faço isso funcionar?

    
por Arturo 25.04.2017 / 17:02

2 respostas

3

simplesmente substitua $( ) por nada.

if [ "$DESKTOP" = "gnome" ]; then
    if command_exists gnome-terminal; then
        terminal=gnome-terminal
    fi
elif [ "$DESKTOP" = "mate" ]; then
    if command_exists mate-terminal; then
        terminal=mate-terminal
    fi
fi
$terminal --working-directory="$HOME/code/" --window --full-screen &

$( ) é usado para executar um comando e colar a saída, seja em uma variável ou em uma linha de comando.

acima do código não pode ser executado, se o terminal foo for indefinido, sugiro

noterminal=true
if [ "$DESKTOP" = "gnome" ]; then
    if command_exists gnome-terminal; then
        gnome-terminal --working-directory="$HOME/code/" --window --full-screen &
        noterminal=false
    fi
elif [ "$DESKTOP" = "mate" ]; then
    if command_exists mate-terminal; then
        mate-terminal --working-directory="$HOME/code/" --window --full-screen &
        noterminal=false
    fi
fi
if $noterminal
then
   echo unable to find terminal 
   ## or other GUI alert system.
   ## or xterm as per mmmint sugestion
fi
    
por 25.04.2017 / 17:13
-1

Até onde eu sei, xterm está disponível na maioria dos sistemas operacionais baseados em Linux.
Em qualquer caso, o terminal usado será encontrado na variável $TERM .

    
por 25.04.2017 / 17:18