Откуда в SGR номер 38 и 48 берутся числа 2 и 5?

В этих случаях следует использовать функции оболочки вместо псевдонимов. Это немного больше для ввода, но это позволяет вам быть более гибким:

function rm {
  if ! test -d "$HOME/zap"; then
    echo "No zap in home" >&2
    return 1
  else
    mv -f -- "$@" "$HOME/zap/"
  fi
}

$ @ будет расширяться до аргументов, которые вы указываете rm в командной строке. - необходим для обозначения конца флагов командной строки (так что rm -f , где -f - файл, возможно, ] rm и mv в любом случае не имеют общих флагов командной строки).

Чтобы получить доступ к исходной команде rm , используйте \ rm или команду rm .

Проверка существования $ HOME / zap , вывод сообщения об ошибке в стандартную ошибку и выход с ненулевым статусом выхода в функции, просто чтобы показать, что вы можете делать все, что захотите » я хочу туда. Очевидно, вы могли бы сократить его до

function rm {
  mv -f -- "$@" "$HOME/zap/"
}

. В руководстве bash содержится утверждение:

Почти для всех целей псевдонимы заменяются функциями оболочки.

Псевдонимы действительно полезны, например, добавление ваших любимых флагов к ls и тому подобное.

3
16.05.2016, 20:30
0 ответов

Теги

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