1

Я добавил псевдоним и замедлил время открытия Zsh. Он открывается, но просто зависает на дополнительные 1 или 2 секунды, чтобы получить подсказку (или начинает набирать мою команду без приглашения в верхней части оболочки)

Есть еще один вопрос по этому поводу, но это привело к тому, что замедление не связано с псевдонимами.

Псевдонимы замедляют запуск оболочки?

У меня есть псевдоним, который помогает мне запустить эмулятор Android на основе имени одного из имен AVD из списка, подождите 2 секунды, а затем запустите flutter.

alias runflutter="emulator @$(avdmanager list avd | grep -m 1 -Po '(?<=Name:\s).*'  ) &; sleep 2;  flutter run"

Основная причина, по которой я уверен, что моя проблема в том, что псевдоним, заключается в том, что при тестировании с /usr/bin/time zsh -i -c exit Дает мне следующее:

2.27user 0.18system 0:01.07elapsed 228%CPU (0avgtext+0avgdata 141092maxresident)k
0inputs+112outputs (0major+50607minor)pagefaults 0swaps

Если удалить мой псевдоним, вывод той же команды

0.24user 0.11system 0:00.35elapsed 100%CPU (0avgtext+0avgdata 16036maxresident)k
0inputs+96outputs (0major+16089minor)pagefaults 0swaps

Какие у меня мысли и сделано до сих пор

Я думал, что у меня уже есть команда flutter, поэтому, возможно, наличие псевдонима с ключевым словом flutter вызовет некоторые проблемы с индексацией, не уверенный, существует ли индексация или что-то подобное. Поэтому я переименовал свой псевдоним, ничего не изменилось.

Моя другая теория заключается в том, что с задержкой в 2 секунды и разницей в 2,0 между числами перед «пользователем» в выходных данных я подумал, что это может быть связано с моей командой сна в псевдониме. Это выполнено как-то. Я удалил команду сна из своего псевдонима, но не помог.

1 ответ1

1

alias runflutter = "emulator @ $(список avdmanager avd | grep -m 1 -Po '(?<= Имя:\s). * ') &; сон 2; флаттер бег "

Жирная часть этого псевдонима выполняется при определении псевдонима. Это поведение, которое вы хотите? Сколько времени это займет, чтобы бежать?

Я чувствую, что ты спишь 2 секунды, потому что ты хотел дать avdmanager время на бег. Если да, то вам могут понравиться результаты

setopt rcquotes
alias runflutter='emulator @$(avdmanager list avd | grep -m 1 -Po ''(?<=Name:\s).*'' ) &; sleep 2; flutter run'
setopt norcquotes

лучше.

В общем, я бы порекомендовал использовать rcquotes, а не отключать его в противном случае, потому что без rcquotes самый короткий способ, которым я знаю, заключать в кавычки одиночную кавычку в строке с одинарными кавычками, является громоздким '\'' . Если вы предпочитаете, вы можете сделать это вместо rcquotes, давая вам

alias runflutter='emulator @$(avdmanager list avd | grep -m 1 -Po '\''(?<=Name:\s).*'\'' ) &; sleep 2; flutter run'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .