dumpdef
записывает список макросов с их определением в файл. В standard m4 этот файл является стандартной ошибкой, поэтому единственный способ получить его - это перенаправление, внешнее по отношению к сценарию m4. GNU m4 предоставляет макрос debugfile
для перенаправления выходных данных в файл, который может быть считан с помощью input
, но нельзя полагаться на конкретную реализацию m4 в autoconf.
Даже если вам удастся удержаться на выходе из dumpdef
, формат вывода не указан. Для разбиения последовательности на строки можно использовать index
и substr
, но это предполагает, что реализация распечатывает один макрос на строку, что не гарантируется; кроме того, значения макросов могут содержать новые строки. В GNU m4 вывод неоднозначен: нельзя отличить
define(`foo', `hello')
define(`fooo', `world')
от
define(`foo', `hello
fooo: world')
При условии, что реализация m4 печатает один макрос на строку и следует за именем двоеточием, можно собрать потенциальные имена макросов в этом пути и использовать ifdef
для проверки того, действительно ли они являются именами макросов. Но вы находитесь во власти реализации, которая не использует тот же отладочный формат печати.
Лучший способ решить проблему, вероятно, вне m4.
-121--186499-
Если используется zsh
, можно воспользоваться преимуществами функции MULTIOS
, т.е. полностью избавиться от команды tee
:
uname >file1 >file2
просто запишет выходные данные uname
в два разных файла: file1
и file2
, что эквивалентно uname | tee file1 > file2
Аналогичным образом перенаправление стандартных входных данных
wc -l
эквивалентно cat file1 file2 | wc -l
(обратите внимание, что это не то же самое, что wc -l file1 file2
, более поздний подсчет
Конечно, вы также можете использовать MULTIOS
для перенаправления вывода не в файлы, а в другие процессы, используя подстановку процессов, например:
echo abc > >(grep -o a) > >(tr b x) > >(sed 's/c/y/')
-121--932-
Выглядит как dts-wav. Многие из этих файлов имеют идентификатор формата заголовка, который предполагает PCM, но фактическим потоком байтов является DTS. Это объясняет выходные данные soxi.
Если установлена последняя версия (2007 или более поздняя) ffmpeg/libavcodec, mplayer должен быть способен обнаружить это и использовать соответствующий кодек, отличный от PCM.
Вывод VLC подразумевает наличие DTS с конфигурацией 5.1 (6 каналов).
Насколько я знаю, гора не сканирует мимо первой спички. Одна вещь, которую вы можете сделать (стоит ли это учитывать?) - это установить правила udev, которые создают одну и ту же симлинк для всех ваших NTFS дисков под /dev ... тогда одна строка в fstab сделает для любого/всех из них.
. Не знаю, какую операционную систему вы используете; но лучшая практика FreeBSD в этом отношении - использовать glabel
для прикрепления метки к файловой системе. Затем эти метки появляются как /dev/ufs/[метка]
, и вы используете их в вашей спецификации fstab
. Например, если это USB-устройства, и все они настроены автоконфигурацией в соответствии с /dev/ad0s0a
, /dev/ad2s0a
и /dev/ad3s0a
, вы можете использовать их метки вместо них:
/dev/ufs/gerbil0 /gerbil ufs rw 2 2
/dev/ufs/gerbil1 /gerbil ufs rw 2 2
/dev/ufs/gerbil2 /gerbil ufs rw 2 2
или
/dev/ufs/gerbil0 /someplace ufs rw 2 2
/dev/ufs/gerbil1 /anotherPlace ufs rw 2 2
/dev/ufs/gerbil2 /yetanotherPlace ufs rw 2 2