Разрешите вложенные псевдонимы к их исходным командам

Если Ваша ОС (неуказанный в o/p) не поддерживает трассировку процесса, рассматривает замену дочернего изображения с оберткой, предполагая, что новый процесс загружает новое изображение.

4
26.07.2014, 16:19
2 ответа

Нажмите Ctrl-Alt-e с командой, используя записанные псевдонимы (готовые к запуску), и Bash развернет ее . Ctrl-Alt-e - привязка по умолчанию для команды readline shell-expand-line .

Каждый раз, когда вы нажимаете Ctrl-Alt-e Bash расширяет один слой псевдонима, нажимайте его несколько раз, пока ваша команда не расширится настолько, насколько вам нужно.

Если ваша Мета клавиша не Alt , замените ее или нажмите Escape Ctrl-e .

Существует также функция alias-expand-line , которая по умолчанию не привязана, а только расширяет псевдонимы.

12
27.01.2020, 20:47

Я отправил аналогичный вопрос на StackOverflow (, вероятно, следовало разместить здесь, посвященный Unix и Linux ).

Мое решение состояло в том, чтобы написать функцию bash:

xtrace() {
    local eval_cmd
    printf -v eval_cmd '%q' "${@}"
    { set -x
      eval "${eval_cmd}"
    } 2>&1 | grep '^++'
    return "${PIPESTATUS[0]}"
}

Итак, xtrace uвыведет что-то вроде:

++ apt-get update
++ apt-get upgrade -y --show-progress
++ apt-get autoremove -y
++ apt-get check
++ apt-get autoclean

Имейте в виду, что это на самом деле выполняет любой псевдоним, который вы ему передаете, поэтому, если вы не хотите выполнять u, тогда лучше использовать решение @MichaelHomer. Кроме того, из-за вашей цепочки &&, если какая-либо из команд в вашем псевдониме не возвращает 0, выполнение остановится, и вы увидите только расширенные псевдонимы до этой точки.

1
27.01.2020, 20:47

Теги

Похожие вопросы