Несколько маршрутизаторов подключены к коммутатору - как подключиться к правильному using netctl

Используйте встроенную команду для вызова внешней команды, минуя любую функцию с тем же именем. Также:

  • Что следует за , если - обычная команда. Чтобы выполнить сравнение строк, вызовите встроенный тест или встроенный [ с тем же синтаксисом плюс последний ] или [ […]] конструкция с более упрощенным синтаксисом. См. с использованием одинарной или двойной скобки - bash для получения дополнительной информации.
  • Оператор -eq предназначен для сравнения целых чисел. Используйте = для сравнения строк.
  • Я добавил некоторую ограниченную поддержку передачи нескольких аргументов (включая такие параметры, как -p ). Ниже я вызываю cd только в случае успеха mkdir и вызываю его по последнему аргументу, переданному функции.
  • -g будет распознан только как самый первый аргумент. Возможны варианты синтаксического анализа для обнаружения и удаления его из любого положения, но сложнее.
mkdir () {
  local do_cd=
  if [ "$1" = "-g"]; then
    do_cd=1
    shift
  fi
  command mkdir "$@" &&
  if [ -n "$do_cd" ]; then
    eval "cd \"\${$#}\""
  fi
}

Я не рекомендую определять ваши собственные параметры. Они не будут показаны в - справке или на страницах руководства.Они не более запоминаются, чем определение команды с другим именем: либо вы не помните, что они у вас есть, и нет никаких преимуществ по сравнению с командой с другим именем, либо вы не помните, что они настраиваемые. , а затем вы можете сразу узнать это с помощью настраиваемого имени, спросив оболочку, является ли это встроенной командой или функцией ( type mkcd ), чего нельзя сказать о настраиваемой опции. Есть варианты использования для переопределения стандартной команды, но это не так.

1
12.09.2015, 20:26
0 ответов

Теги

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