Přišel jsem sem, abych zjistil, jak vytvořit ze skriptu terminál a spustit jej v něm sám, takže pro ty, kteří to chtějí udělat, jsem přišel na toto řešení:
if [ ! -t 0 ]; then # script is executed outside the terminal?
# execute the script inside a terminal window with same arguments
x-terminal-emulator -e "$0" "[email protected]"
# and abort running the rest of it
exit 0
fi
Zde je jednoduchý příklad, jak začít:
Chcete-li napsat skript shellu, udělejte to na příkazovém řádku:
echo -e '#!/bin/sh\n echo "hello world"' > abc.sh
Toto píše:
#!/bin/sh
echo "hello world"
Do souboru s názvem abc.sh
Dále jej chcete nastavit jako spustitelný pomocí:
chmod +x abc.sh
Nyní jej můžete spustit pomocí:
./abc.sh
A měli byste vidět:
hello world
Na vašem terminálu.
Chcete-li jej spustit v novém terminálu, můžete:
gnome-terminal -x ./abc.sh
nebo pokud je xterm
:
xterm -e ./abc.sh
Zde je seznam různých emulátorů terminálu.
Případně jej jednoduše spustíte ve svém aktuálním terminálu, ale na pozadí pomocí:
./abc.sh &
Pro gnome zkuste toto.
Nahraďte ls příkazem, který chcete spustit
gnome-terminal -x sh -c "ls|less"
Doufám, že to je to, co chcete
Od ledna 2020 platí -e
a -x
možnost v gnome-terminal
stále běží správně, ale vyhodí následující varování:
Pro -e
:
# Možnost „-e“ je zastaralá a může být odstraněna v pozdější verzi gnome-terminálu.
# Pomocí „- “ ukončete volby a za ně umístěte příkazový řádek k provedení.
Pro -x
:
# Možnost „-x“ je zastaralá a může být odstraněna v pozdější verzi gnome-terminálu.
# Pomocí „- “ ukončete volby a za ně umístěte příkazový řádek k provedení.
Na základě výše uvedených informací jsem potvrdil, že můžete spustit následující dva příkazy, aniž byste obdrželi jakékoli varovné zprávy:
gnome-terminal -- /bin/sh -c '<your command>'
gnome-terminal -- ./<your script>.sh
Doufám, že to pomůže někomu dalšímu, kdo má v současné době tento problém :)