С zsh
:
$ echo ${${${=test}#*/}%%/*}
2 5 8
Иначе можно сделать:
$ printf '%s\n' "$test" | sed 's|[^ /]*/\([^/]*\)[^ ]*|\1|g'
2 5 8
Машинная задача будет использовать примитивы для управления процессами, управления сигналами, каналов и общей памяти. Примитивы в Unix перечислены следующим образом:
• Process Control
fork:
exec:
• Signal Management
sigset:
kill:
• Pipes and Files
pipe:
mknod:
unlink:
read/write:
• Shared Memory
shmget:
shmat:
• Semaphores (System V style)
semget:
semop:
• ipcs: This command reports on the status of inter-process communication facilities. Allows you to monitor the correct use and operation of the interprocess communication primitives in your program.
• ipcrm: Remove a message queue, semaphore set, or shared memory ID. This comes in handy if your program does not clean up things correctly.
• kill: Terminate or signal a process. Comes in handy to clean up your processes.
• ps: Report on process status. This at least lists all your processes.
man namespaces имеет раздел пространства имен IPC .
IPC namespaces isolate certain IPC resources, namely, System V IPC objects (see svipc(7)) and (since Linux 2.6.30) POSIX message queues (see mq_overview(7)). The common characteristic of these IPC mechanisms is that IPC objects are identified by mechanisms other than filesystem pathnames.
man svipc
говорит, что у него есть три типа объектов; объекты разделяемой памяти, очереди сообщений и наборы семафоров (семафор является более общим случаем мьютекса). Вместо пути к файловой системе каждый объект имеет числовой идентификатор.
Очереди сообщений POSIX идентифицируются по имени, похожему на имя файла. (Реализация Linux использует виртуальные файлы, доступ к которым осуществляется через/dev/mqueue/
).
System V IPC следует считать устаревшей и сложной в использовании.
Обратите внимание, что пространства имен Linux IPC не изолируют POSIX SHM. Реализация Linux обращается к объектам через /dev/shm/
, которая представляет собой tmpfs
виртуальную файловую систему. Если вы хотите изолировать POSIX SHM, вы используете пространства имен монтирования для изменения файловой системы, смонтированной в /dev/shm/
.