Piszę / debuguję powłokę w C, która działapętlę while (1) i za każdym razem, gdy zamykam powłokę, zamyka terminal, używając exit (), którego używałem do uruchamiania pliku wykonywalnego, więc ciągle muszę otworzyć kolejny terminal i wrócić do katalogu mojego obszaru roboczego w aby kontynuować pracę. Pomyślałem, że byłby to dobry powód, aby dowiedzieć się, jak mogę otworzyć kolejny proces terminalowy w moim bieżącym katalogu roboczym.
PS. Znam lepsze rozwiązanie, ze względu na wydajność, byłoby nauczyć się, jak zakończyć mój plik wykonywalny bez zamykania mojego terminala, ale to nie jest to, o co pytam.
Odpowiedzi:
2 dla odpowiedzi № 1W powłoce bash wykonaj bash
aby otworzyć podpowłokę przed uruchomieniem pliku wykonywalnego. Id est, uciekaj bash
jako polecenie uruchamiane przed plikiem wykonywalnym. Tak więc, gdy twój plik wykonywalny zakończy się sam i jego powłoka, tylko podpowłok zostanie zakończona.
bash -c name_of_your_executable
Jak wspomniałeś w swoim pytaniu, lepszym rozwiązaniem jest zakończenie twojego pliku wykonywalnego bez kończenia powłoki.