При построении на ответе Блендера для получения количества выполнения процессов может использоваться следующее:
$ ps axo state | grep "R" | wc -l
Для получения количества процессов в Бесперебойном Сне, можно использовать (Редактирование Измененный 'D' к 'U', Gilles спасибо!):
$ ps axo state | grep "U" | wc -l
Ну, это находится в GNU, FreeBSD, OpenBSD и общем BSD ls
реализации, таким образом, я сказал бы, что это, довольно вероятно, будет где угодно.
Не анализировать ls
если можно помочь ему. В зависимости от того, что Вы делаете, test
утилита могла бы быть лучшей альтернативой.
test -r filename
возвратит успех, если файл будет читаем с полномочиями текущего пользователя и перейдет по символьным ссылкам автоматически. Аналогично, -w
и -x
скажет Вам, если файл будет перезаписываем или исполняем. test
команда указана POSIX и так должна работать с любым современным UNIX.
Если действительно необходимо знать определенные полномочия файла, ls
мог бы быть самый портативный путь, пока Вы только используете его на одном файле за один раз. В этом случае, -L
и -l
флаги также указаны POSIX, таким образом, необходимо быть довольно в безопасности. (См., "не Анализируют ls
"для немного большего количества комментария относительно мобильности выходных полей ls -l
.)
Другая опция могла бы состоять в том, чтобы записать короткую программу C для использования в своих интересах stat(2)
системный вызов, который будет доступен на каждом UNIX под солнцем. Если это - небольшая часть большей части программного обеспечения, это уже компилируется от C, это могло бы быть наилучшим вариантом.
test
программа в моей системе и кажется, что это не работа, она ничего не производит (даже не к sterr). Archlinux
– Hanan N.
29.11.2011, 23:50
ls
” хороший совет в целом, конкретный случай парсинга ls -l
на единственном файле, когда Вы после полномочий или числа каналов, безопасно.
– Gilles 'SO- stop being evil'
30.11.2011, 01:20
test
не производит вывода, если Вы не делаете синтаксическую ошибку. Это возвращает информацию через свой статус выхода: 0, если тест верен, ≥1, если тест является ложью.
– Gilles 'SO- stop being evil'
30.11.2011, 01:21
Это находится в SUSv3 (Posix, 2001), но не в SUSv2 (искажают Unix98).