Когда необходимо использовать подоболочки по сравнению с 'xargs'?

Начиная с установщика пакета yum полагается на libxml2, он не может использоваться для переустановки libxml2. Вы можете:

  • скопируйте файл с другой машины, выполняющей ту же версию CentOS
  • загрузите машину от установки или живого CD и скопируйте файл по (или используйте другую машину, которую можно освободить для перезагрузки и скопировать ее),
  • если у Вас есть все инструменты для создания установленного libxml2 (gcc, автоинструменты и т.д.), Вы могли бы также попытаться загрузить и установить источник для libxml2 и установить его с нуля (если у Вас нет инструментов, Вы не можете установить их, хотя Вы смогли сходить с рук 'просто' наличие gcc и установку других из источника),
6
23.02.2014, 03:01
1 ответ
[112122] Это слегка самоуверенный вопрос, но я просто скажу, что он сильно зависит от 2 вещей:

  • Что за команда вы собираетесь запустить?

  • Сколько экземпляров вы собираетесь выполнить?

Если вы собираетесь выполнить от десятков до 100 в одном и том же процессе, то [112605]xargs[112606] имеет наибольший смысл. Также, если запуск процессов будет дорогостоящим, то [112607]xargs[112608], скорее всего, лучший путь для запуска.

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

Если длина аргументов, генерируемых оболочкой, будет очень большой, то вы захотите использовать [112609]xargs[112610]. Но этот предел довольно экстремален, обычно 2MB-4MB символов, так что маловероятно, что вы превысите его. Вы можете проверить вот так:

enter image description here

Кстати, ни одна из этих команд, кажется, не работает. Команда [112611]cut -d " " -f2[112612] не работает, [112613]cut[112614] может принимать за разделитель только один символ. Попробуйте вместо этого:

Использование [112615]awk[112616] здесь, скорее всего, приведет к проблемам, если у вас есть какие-либо имена файлов или каталоги с пробелами, поэтому используйте его с осторожностью.

enter image description here

Я бы использовал метод [112617]cut -f2-[112618], но это только я, другие' могут дать вам более сложное [112619]awk[112620] решение, но используйте то, что имеет для вас наибольший смысловой смысл.

Используя awk + cat

NOTE:[112622] При построении вывода на [112623]xargs[112624] нет необходимости вызывать [112625]cat[112626], [112627]xargs[112628] будет автоматически повторять переданный вывод, по умолчанию.

EDIT #1

Если вы используете табуляции для разделения с обрезанием, вам не нужно делать это явно, по умолчанию это установлено по умолчанию.

6
27.01.2020, 20:28

Теги

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