Хотя здесь есть несколько правильных решений, другой синтаксис, который иногда может быть полезен, - это выполнение команды в <()
. Это позволит вам создать более одного объекта файлового дескриптора в командной строке.
Это может быть полезно, когда вы делаете что-то вроде сравнения длинных строк текста, или если вы хотите сравнить содержимое, которое не находится в файле.
Например, сравнение файлов hosts на двух узлах без необходимости копировать файл hosts на localhost:
diff -Naur <(cat /etc/hosts) <(ssh -q otherhost 'cat /etc/hosts')
Символ <
перенаправляет файл на STDIN, а ()
создает подпрограмму для выполнения команды между скобками. Именно STDOUT из подпрограммы передается в STDIN выполняемой команды.
Это более простой способ создать более одного входного "файла" для команды, чем пытаться использовать несколько here docs, или пытаться передать несколько команд в конвейер для конечной команды.
Вот как я решил свою проблему:
Загрузите другой iso-файл: CentOS-5.4-x86_64-bin-DVD_1.iso , попытался создать загружаемый USB-накопитель, но не смог работать, поэтому напишите на DVD & успешно установлен.