Используйте &
, чтобы выполнить команду асинхронно, чтобы рейнджер можно было использовать, пока у вас открыто приложение.
Например, в вашем rifle.conf
используйте следующую строку:
mime ^text, label editor = emacs & -- "$@"
вместо
mime ^text, label editor = emacs -- "$@"
Точно так же предположим, что вы хотите открыть изображение с помощью gimp
, затем вы можете нажать r
в ranger
, чтобы открыть список доступных приложений. Список может выглядеть так:
0 | eog -- "$@"
1 | feh -- "$@"
2 | eom -- "$@"
3 | gimp -- "$@"
:open_with
Затем используйте 3 &
вместо 3
, чтобы открыть изображение в gimp
, сохраняя при этом возможность использования рейнджера.
Иногда ranger
может быть не настроен для распознавания правильного приложения (, напримерmathematica
). Вы по-прежнему можете выбрать это приложение, введя имя приложения в строке :open_with
. Однако, чтобы рейнджер продолжал реагировать, используйте флаг f
, как в :
.
:open_with mathematica f
(описанный выше метод использования флага f
взят из здесь)
Мне это подходит:
ssh user@remote.de -t "cd /home/h/usr/praktikum && git pull && sbatch run.sh; bash --login"
Ибо не оставит тебя в отдаленной оболочке:
ssh user@remote.de -t "cd /home/h/usr/praktikum && git pull && sbatch run.sh"
Конвейеры(|
)используются для соединения входов и выходов нескольких команд в конвейер. Команды выполняются независимо и одновременно друг с другом, за исключением случаев, когда они ожидают появления ввода или чтения вывода. Вот почему cd
не влияет на текущий каталог команд git
и sbatch
. Вы не хотите использовать конвейер здесь.
То, что вы хотите сделать, это
ssh user@remote.de 'cd /home/h/usr/praktikum && { git pull; sbatch run.sh; }'
Что это будет делать, так это cd
в указанный каталог, и если это пройдет успешно (каталог существует и у вас есть права доступа к нему ), запускаются команды git
и sbatch
.
В приведенной выше команде sbatch
будет выполняться независимо от состояния выхода git pull
. Если вы хотите избежать запуска sbatch
, если git
по какой-либо причине не работает, используйте
ssh user@remote.de 'cd /home/h/usr/praktikum && git pull && sbatch run.sh'