for i in 10 20 30; do echo $i; sleep 1; done | dialog --title "My Gauge" --gauge "Hi, this is a gauge widget" 20 70
хорошо работает, таким образом, @Shadur является правильным и там буферизует приведенный в действие.
Добавление sed
стриппер в соединение показывает, что это - преступник (только показывает 0 и 30):
for i in 10 20 30; do echo $i; sleep 1; done | sed 's/\([0-9]*\).*/\1/' | dialog --title "My Gauge" --gauge "Hi, this is a gauge widget" 20 70
Теперь, когда проблема известна, у Вас есть несколько опций. Самым чистым был бы к раунду/сокращению процент в awk
или с математикой или с обработкой строк, но так как у Вас есть GNU sed
, просто добавление -u
или --unbuffered
должен добиться цели.
Однако для пользы полноты, простой тестовый сценарий показывает awk
также делает буферизацию:
for i in 10 20 30; do echo $i; sleep 1; done | awk '{print $0}' | sed -u 's/\([0-9]*\).*/\1/' | dialog --title "My Gauge" --gauge "Hi, this is a gauge widget" 20 70
Но Вы уже обрабатываете это с fflush
, таким образом, я не ожидаю проблем.
Я могу перечислить файловые системы, которые может поддерживать рабочее ядро?
Ну, ответ /proc/filesystems
является просто неправильным — это отражает только те FSes, которые уже принесены используемый, но обычно существует путь больше:
ls /lib/modules/$(uname -r)/kernel/fs
Другой источник /proc/config.gz
который мог бы отсутствовать в Вашем дистрибутиве (и я всегда задаюсь вопросом «почему?!» в случае, если).
/proc/filesystems
списки все типы файловой системы, поддерживаемые рабочим ядром, наряду с атрибутами файловой системы, nodev
указать, что эта файловая система не поддерживается блочным устройством, например.
man 5 filesystems
дает еще некоторую всестороннюю информацию.
cat /proc/filesystems
перечисляет набор "nodev", файловых систем очевидно специального назначения, плюс ext2, ext3, ext4. Когда я заглядываю /lib/modules/3.11.6-1-ARCH/kernel/fs
, Я вижу много других, как "жиры", "btrfs", "reiserfs", которые являются также регулярными дисковыми файловыми системами, но не появляются в /proc/filesystem
список. Что произошло с этим?
– Bruce Ediger
03.11.2013, 16:49
nodev
указывает, что рассматриваемая файловая система не является физической файловой системой, которой нужно блочное устройство для проживания на, а скорее виртуальная файловая система, которая поддерживается чем-то другим, чем блочное устройство.
– Jonathan Callen
03.11.2013, 16:49
/proc/filesystems
только показывает файловые системы, что ядро загрузилось - пока Вы не вставляете те модули в ядро (который обычно происходит автоматически, когда Вам нужны они), ядро не может поддерживать те файловые системы.
– Jonathan Callen
03.11.2013, 16:51
Он упакован в одинарные кавычки, поэтому не может быть развернут.
jq -r '.AutoScalingInstances[] | select(.AutoScalingGroupName == "$var1") ... .InstanceId'
Ключевой частью является команда jq
, для которой фактически передается только один аргумент (обратите внимание на длинную часть команды red ). Так что ваши трубы тоже не вступают в силу. Можно выборочно свернуть вещи в кавычки, которые действительно должны быть.
Я запускаю arch linux и предложенное решение cat/proc/filesystems | awk '{print $ NF}' | sed '/^ $/d '
не предоставило мне полный список файловых систем, которые в настоящее время поддерживает/поддерживает мое ядро. После поиска он выглядит как/proc/filesystems просто перечисляет файловые системы, которые уже имеют свои модули ядра загружены (или не нужны модули, такие как sysfs?).
На основании предложения Якамока прочитать справочную страницу я обнаружил, что документация о -t parmater имеет другую команду cat/proc/filesystems | awk '{print $ NF}' | sed '/^ $/d '
, которая показывает дополнительные модули ядра файловой системы, которые доступны, но в настоящее время не загружены.
Сложив все вместе, у меня теперь есть эта команда, которая, как я полагаю, при запуске даст вам полный список всех файловых систем, которые поддерживает ваша текущая система linux:
(cat/proc/filesystems | awk '{print $ NF}' | sed '/^ $/d '; ls -1/lib/modules/$ (uname -r )/kernel/fs) | sort -u
Это в основном обе команды, выводимые один за другим все pipeed для сортировки с параметром -u (unique) включен для фильтрации дубликатов.
-121--20135-Я верю, что это даст вам то, что вы хотите:
(cat /proc/filesystems | awk '{print $NF}' | sed '/^$/d'; ls -1 /lib/modules/$(uname -r)/kernel/fs) | sort -u
Объяснение
Основываясь на моем лучшем понимании:
cat/proc/filesystems | awk '{print $ NF}' | sed '/^ $/d '
предоставляет все файловые системы, которые изначально поддерживаются ядром (как и sysfs) вместе с модулями ядра, загруженными в настоящее время ls -1/lib/modules/$(uname -r )/kernel/fs
предоставляет список доступных модулей файловой системы, доступных для вашего ядра sort -u
сортирует объединенные результаты первых двух команд с удаленными дубликатами (только показать уникальные результаты -u) Я все еще учусь linux, это работает на Arch linux, но я полагаю, что по крайней мере для ubuntu вам может понадобиться изменить путь /lib/modules/$ (uname -r )/kernel/fs
на другой каталог, подходящий для вашего дистрибутива.
Правильный ответ: cat /proc/filesystems
.
На вопрос уже был дан ответ, но все остальные ответы в той или иной степени неполны, вводят в заблуждение, не соответствуют действительности или, по крайней мере, больше не соответствуют действительности.
Изman 8 mount
(упор мой):
-t, --types fstype
The argument following the -t is used to indicate the filesystem type. The filesystem types which are currently supported depend on the running kernel. See /proc/filesystems and /lib/modules/$(uname -r)/kernel/fs for a complete list of the filesystems. The most common are ext2, ext3, ext4, xfs, btrfs, vfat, sysfs, proc, nfs and cifs.
Поэтому я не могу винить никого, кто предлагает эти подходы. Однако, как указывали другие, каталог /lib/modules/$(uname -r)/kernel/fs
содержит файловую систему -, связанные модули ядра , что не то же самое, что поддерживаемые в настоящее время файловые системы :
Таким образом, список может содержать добавления, удаления и/или замены. Это не очень надежно. Можно иметь так называемое -"монолитное ядро", в котором все встроено -уже -в этом (заведомо необычном )случае список модулей будет полностью пуст, но ядро по-прежнему будет поддерживать произвольное количество вещей -, включая, конечно же, различные файловые системы.
С другой стороны, это содержимое моего /proc/filesystems
файла:
nodev sysfs
nodev tmpfs
nodev bdev
nodev proc
nodev cgroup
nodev cgroup2
nodev cpuset
nodev devtmpfs
nodev binfmt_misc
nodev configfs
nodev debugfs
nodev tracefs
nodev securityfs
nodev sockfs
nodev bpf
nodev pipefs
nodev ramfs
nodev hugetlbfs
nodev rpc_pipefs
nodev devpts
ext3
ext4
ext2
cramfs
squashfs
vfat
msdos
exfat
iso9660
nodev nfs
nodev nfs4
nodev nfsd
nodev cifs
nodev smb3
ntfs3
nodev autofs
fuseblk
nodev fuse
nodev fusectl
udf
f2fs
nodev efivarfs
nodev mqueue
nodev resctrl
btrfs
nodev pstore
В этом списке есть файловые системы, которые моя система даже не видела, не говоря уже о том, что в настоящее время их монтирует.
По крайней мере, в моей системе это ответ. Я не могу сказать, почему принятый в настоящее время ответ приводит к противоположному выводу; возможно это новая разработка...
/boot/config-$(uname -r)
– Oli 03.11.2013, 18:21/proc/filesystems
не является неправильным, это просто неполно. – scai 03.11.2013, 23:15/lib/modules/$(uname -r)/kernel/fs
только поможет с файловыми системами, которые были включены как модули, не, которые встроены в ядро. Дополнительно имя модуля не могло бы соответствовать имени файловой системы, которое оно обеспечивает, и единственный модуль может обеспечить несколько файловых систем. – Patrick 04.11.2013, 03:42/proc/config.gz
вообще. 1) это, как гарантируют, не будет существовать, 2) Имя модуля не могло бы соответствовать имени файловой системы, которое оно обеспечивает, и единственный модуль может обеспечить несколько файловых систем. – Patrick 04.11.2013, 14:00