Próbuję napisać prosty skrypt, który uruchamia terminal i uruchamia polecenie workon foo
. Innymi słowy, chcę po prostu zrobić:
mate-terminal -e workon foo
Jednak to nie działa, ponieważ workon
polecenie wymaga ode mnie:
export WORKON_HOME=~/work;
source /usr/local/bin/virtualenvwrapper.sh
Normalnie te linie są uruchamiane automatycznie, ponieważ są w moim .bashrc
, ale najwyraźniej mate-terminal -e
nie robi source ~/.bashrc
. Jeśli jednak spróbuję dodać te wiersze do mojego skryptu:
mate-terminal -e export WORKON_HOME=~/work; source /usr/local/bin/virtualenvwrapper.sh; workon foo
to też nie działa. MATE mówi mi:
There was an error creating the child process for this terminal
Failed to execute child process "export" (No such file or directory)
Mam ten sam problem, jeśli pomiń export
i po prostu zrób mate-terminal -e source ...
lub jeśli spróbuję użyć .
zamiast source
( mate-terminal -e . ...
).
Nie jestem pewien, w jaki sposób można załadować wszystko, jeśli nie mogę, export
, source
, lub .
, ale musi być jakiś sposób, ponieważ mate-terminal -e
byłoby niemal bezużyteczna bez niego.
Czy ktoś wie, jak mogę skonfigurować swoje środowisko w terminalu, od którego zacząłem mate-terminal -e
?
Failed to parse arguments: Unknown option -c
. Potem wypróbowałem drugą wersję, która działała świetnie ... przez około 1ms; potem terminal został zamknięty (prawdopodobnie dlatego, że polecenie zostało zakończone). Więc wtedy wypróbowałem formularz skryptu i próbowałem wykonać go w obie strony, tak jak sugerowałeś, ale miał ten sam problem (tj. Terminal został natychmiast zamknięty). Jeśli masz jakieś sugestie, jak mogę rozwiązać problem z zamykaniem terminala, chętnie zaakceptuję tę odpowiedź.read line
(lub asleep 10s
), aby skrypt czekał po naciśnięciu klawisza Return to end (lub 10 sekund). Możesz użyć tej samej sztuczki po swoim poleceniu w ciągu polecenia bash...; workon foo; read line ...
. Zasadniczo dla wielu terminali jest możliwe, patrz tutaj na przykład (+) , aby podać parametr, aby utrzymać terminal otwarty. W mate-terminal możesz użyć profilu jeden `--window-with-profile` po tym, jak utworzyłeś taki, jak sugerowano powyżej (+).Co powiesz na uruchomienie go w skrypcie?
więc stwórz swój skrypt:
następnie edytuj to, co chcesz. W vi użyj i, aby wstawiać i uważaj na używanie backspace, użyj ESC, a następnie X, aby usunąć. Następnie wykonaj ESC, a następnie ! Qw, aby zapisać i wyjść:
następnie spróbuj go uruchomić:
źródło
No module named virtualenvwrapper virtualenvwrapper.sh: There was a problem running the initialization hooks.
, żesource
polecenie w skrypcie nie przenosi się do nowejmate-terminal
sesji :(