Mam skrypt, który prosi użytkownika o wprowadzenie opcji.
Po wybraniu opcji mam ją, więc uruchamia nowy terminal i wykonuje inny skrypt dla określonej opcji.
Nadal chcę, aby skrypt menu na pierwszym terminalu pytał użytkownika o wpis, a nie wychodził ze skryptu. Bardzo mile widziane będą niektóre opinie na ten temat.
Z komentarza OP zostało skopiowane:
Oto przykład:
menue.sh
#!/binbash
clear
echo
echo
echo
echo "1. Option Here"
echo
echo -n "Choice"
read choice
echo $choice
case $choice in
1) /root/scriptexample/./examplenewterminal.sh
;;
esac
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
examplenewterminal.sh
#!/bin/bash
xterm -e "/root/scriptexample/./example.sh"
bash
clear
echo
example.sh
#! bin / bash jasny Echo Echo Echo Echo polecenia tutaj itp. Kiedy Control + C example.sh zatrzyma wykonywanie poleceń, chcę, aby menu xterm zostało
zamknięte, a skrypt nadal ładował menue.sh w oryginalnym terminalu.
Odpowiedzi:
menue.sh
zaczynając od#!/binbash
. Tak powinno być#!/bin/bash
. Lub, jeśli nie używasz żadnegobash
kodu specyficznego, możesz po prostu użyć#!/bin/sh
./root/scriptexample/./examplenewterminal.sh
i/root/scriptexample/./example.sh
. Powinny to być prawdopodobnie sprawiedliwe/root/scriptexample/examplenewterminal.sh
i/root/scriptexample/example.sh
; tzn././
jest niepotrzebny (i chociaż wydaje mi się, że jest nieszkodliwy, jest mylący). Nie musisz go używać./
za każdym razem, gdy uruchamiasz skrypt; musisz go użyć, gdy uruchamiasz program (skrypt lub skompilowany plik binarny) w bieżącym katalogu . Zobacz Problemy podczas próby uruchomienia pliku sh z innego pliku sh .example.sh
zakończeniuexamplenewterminal.sh
powinien kontynuować działanie. Najwyraźniej zaczyna się kolejnabash
powłoka (której nie rozumiem); po tym kończy się,examplenewterminal.sh
czyści ekran, wyświetla pustą linię i kończy. Poexamplenewterminal.sh
zakończeniumenue.sh
powinien kontynuować działanie. Ale to się kończy. (Co to^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ma być? Tylko separator?) Jeśli dodasz więcej kodumenue.sh
poesac
lub umieścisz istniejący kod w pętli, powinien on nadal działać poexamplenewterminal.sh
zakończeniu.źródło