Variable als Befehl

Variable als Befehl

Ich möchte eine Variable mit dem Terminalnamen festlegen und diese Variable verwenden, um das Terminal im Vollbildmodus zu öffnen. Das würde etwa so aussehen:

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 &

Wie kann ich das zum Laufen bringen?

Antwort1

einfach $( )durch nichts ersetzen.

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 &

$( )wird verwendet, um einen Befehl auszuführen und die Ausgabe entweder in eine Variable oder in die Befehlszeile einzufügen.

Der obige Code wird möglicherweise nicht ausgeführt, wenn eines der Foo-Terminals nicht definiert ist. Ich würde vorschlagen

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

Antwort2

Soweit ich weiß, xtermist es auf den meisten Linux-basierten Betriebssystemen verfügbar.
In jedem Fall wird das verwendete Terminal in der $TERMVariable gefunden.

verwandte Informationen