POSIX является акронимом для Интерфейса Переносимой информационной системы, семейства стандартов, указанных IEEE для поддержания совместимости между операционными системами.

POSIX является семейством стандартов, которые указывают поведение подобных Unix операционных систем.

Эти стандарты определяют:

  • Стандартный интерфейс операционной системы и среда.
  • Программирование API для языка программирования C.
  • Поведение интерпретатора команд (или оболочка).
  • Поведение общих утилит, invocable от оболочки.

Стандарты POSIX разрабатываются Austin Group, спонсируемой Портативным Комитетом по Стандартам Приложения IEEE.

Текущий набор стандартов POSIX доступен онлайн.

9
ответов

Как убедиться, что строка содержит хотя бы одну заглавную букву, одну строчную букву, одну цифру и один знак пунктуации?

Вот что я использую сейчас, чтобы выполнить работу: #!/bin/sh -- string='Aa1!z' if ! printf '%s\n' "$string" | LC_ALL=C grep -q '[[:upper:]]' || \ ! printf '%s\n' "$string" | LC_ALL=C grep -q '[[:...
20.11.2019
8
ответов

Почему оболочка автоматически не исправляет «бесполезное использование кота»? [закрыто]

Многие люди используют однострочники и скрипты, содержащие код типа cat "$MYFILE" | команда1 | command2 > "$OUTPUT" Первый кот часто называют "бесполезным использованием кота", потому что технически он...
11.04.2019
8
ответов

Почему обязательные утилиты POSIX не встроены в оболочку?

Цель этого вопроса - ответить на любопытство, а не решить конкретную вычислительную проблему. Возникает вопрос: почему обязательные утилиты POSIX обычно не встраиваются в реализации оболочки? ...
24.02.2017
7
ответов

Проверьте, содержит ли переменная shell абсолютный путь

Я хочу проверить, содержит ли переменная shell абсолютный путь. Меня не волнует, существует ли путь или нет - если нет, я его создам, но я хочу убедиться, что имею дело с абсолютным ...
20.01.2016
7
ответов

Тест или [или [[более портативен и между оболочками удара и между другими оболочками?

Я вижу, что могу сделать, $ [-w/home/durrantm] && отзываются эхом "перезаписываемый" перезаписываемый, или $ тестируют-w/home/durrantm &&, отзываются эхом "перезаписываемый" перезаписываемый или $ [[-w/home/durrantm]] &
19.11.2014
5
ответов

Как условно передать аргумент из сценария оболочки POSIX?

#!/бин/ш эхо "Шум $1" эхо "Улучшение $2" для snr в 0 5 10 15 20 25 do python Assessment.py --шум $1 --snr 25 --итераций 1250 --улучшение $2 done Если $2 не указано, я не хочу...
19.01.2020
5
ответов

Насколько портативный/dev/stdin,/dev/stdout и/dev/stderr?

Иногда я должен указать "эквивалентный пути" из одного из стандартных потоков IO (stdin, stdout, stderr). С 99% времени я работаю с Linux, я просто предварительно ожидаю/dev/для получения/dev/stdin, и т.д....
15.03.2018
5
ответов

Относятся ли отчеты о ходе выполнения / информация о журналах к stderr или stdout?

Существует ли официальное руководство POSIX, GNU или другое руководство о том, где отчеты о ходе выполнения и информация о журналах ( такие вещи, как «Doing foo; foo done») должны быть напечатаны? Лично я предпочитаю писать их на stderr ...
13.04.2017
5
ответов

Проверить, есть ли в переменной оболочки более одной строка с использованием встроенных модулей?

Я могу сделать это, вызвав внешнюю утилиту sed (для известной непустой переменной $ myvar) следующим образом: if ["$ (printf% s" $ myvar "| sed -n '$ = ') "-экв 1]; затем echo "Ваша переменная имеет только одну строку, продолжение" ...
20.04.2016
5
ответов

Что предназначено “системным вызовом” если не реализация на языке программирования?

Я хотел бы понять термин "системный вызов". Я знаком, что системные вызовы используются для получения сервисов ядра от приложения пространства пользователя. Разъяснение потребности первой части с является различием...
18.04.2014
5
ответов

sed на OSX вставляют в определенной строке

Таким образом, я использовал 'sed' на Linux некоторое время, но испытал немного затруднений при попытке использовать его на OSX, так как 'POSIX sed' и 'GNU sed' имеют столько небольших различий. В настоящее время я борюсь с...
18.10.2012
5
ответов

Существует ли различие между этими двумя командами?

кошка a> b и CP b, Если они - функционально то же, во всех отношениях, какой быстрее?
30.06.2012
4
ответа

GNU sed --posix и символ новой строки в замещающей строке

В спецификации POSIX sed можно найти следующее утверждение (выделено мной): Управляющая последовательность '\n' должна соответствовать <переводу строки>, встроенному в шаблон космос. Литерал <новая строка> должен ...
08.03.2020
4
ответа

Если какая-либо первая в строке английская буква написана строчными буквами, сделайте ее прописной.

У меня есть уцененный документ myfile.md со списком английских предложений, в которых некоторые первые буквы строчные, а некоторые прописные. Все английские предложения начинаются со стандартных английских букв; ...
12.12.2019
4
ответа

POSIX-совместимый способ получить имя пользователя, связанное с идентификатором пользователя.

Мне часто нужно, чтобы имя для входа было связано с идентификатором пользователя, и поскольку это оказалось распространенным вариантом использования, я решил написать функцию оболочки для сделай это. Хотя я в основном использую GNU/Linux...
12.09.2019
4
ответа

Как передать строку в awk для математических вычислений?

#! / Bin / sh - expression_to_evaluate = '12 + 3 'printf'% s \ n '"Арифметическое расширение: $ (( $ expression_to_evaluate)) "printf '% s' 'bc:' printf '% s \ n'" $ expression_to_evaluate "| bc printf '% s' 'awk:' ...
02.03.2019
4
ответа

shell: read: различать EOF и новую строку

Как я могу определить разницу между нулевым и \ n при чтении одного символа? Например: f () {read -rn 1 -p "Введите символ:" char && printf "\ nВы ввели '% s' \ n" "$ ...
01.08.2017
4
ответа

Оболочке разрешают оптимизировать бесполезные команды завершения?

Если оболочку просят работать, вероятно, бесполезный (или частично бесполезный) управляют известный завершиться, такие как кошка hugeregularfile.txt>/dev/null, может она пропускать выполнение той команды (или выполняться...
23.05.2017
4
ответа

$VAR по сравнению с $ {VAR} и заключить в кавычки или не заключить в кавычки

Я могу записать $VAR1 VAR=, которым $VAR1 {VAR1} VAR =" $ VAR=" VAR =" $ {VAR1}" конечный результат мне весь кажется о том же. Почему я должен записать один или другой? разве какой-либо из них не является портативным / POSIX?
28.03.2011
3
ответа

POSIX-эквивалент столбца -t

Недавно я был удивлен, узнав, что POSIX список коммунальных услуг не включает столбец полезность. column впервые появился еще в 4.3BSD, и это довольно полезно. Есть ли POSIX...
02.08.2020
3
ответа

Существует ли операционная система, сертифицированная для UNIX V7?

Я только что просмотрел официальный реестр продуктов, сертифицированных для UNIX, Open Group, и в нем не указана ни одна система, которая должна быть зарегистрирована для торговой марки UNIX V7. Тем не менее, я помнил, что Oracle...
07.05.2020
3
ответа

Почему test -n возвращает true, даже если переменная пуста? Что я делаю неправильно?

согласно справочным страницам test(1): -n STRING the длина STRING не равна нулю, поэтому я ожидал, что это будет работать нормально: [ -n ${var} ] && echo "var is not empty" Я использовал это ...
18.02.2020
3
ответа

Получение времени модификации файла в оболочке POSIX

Можно ли получить время модификации файла из оболочки, используя только функции POSIX? В идеале в метке времени unix (секунды). Все, что мне удалось найти, было с помощью stat(1), но, похоже, это не так...
13.01.2020
3
ответа

Как изменить аргументы оболочки?

Я знаю, что можно перевернуть "$@" с помощью массива: arr=( "$@" ) И используя этот ответ, перевернуть массив. Но для этого требуется оболочка с массивами. Также можно использовать tac: set -- $...
07.01.2020
3
ответа

Имеет ли родитель процесса какое-либо значение с точки зрения его потомка?

В POSIX процессы «связаны» друг с другом через две основные иерархии: Иерархия родительских и дочерних процессов. Иерархия сеансов и групп процессов. Пользовательские процессы имеют большое ...
05.10.2019
3
ответа

Как читать входные строки с символами новой строки из командной строки?

Я обнаружил, что это позволяет пользователю вводить данные из командной строки. Но он не распознает новые символы строки, которые я ввожу на входе. Делаем: #!/bin/bash read -e -p "Многострочный ввод =" переменная; ...
27.06.2019
3
ответа

Перенаправление вывода только при успешном вызове команды

Я хочу перенаправить вывод команды (в данном случае diff) в файл, но только если есть разница в сравниваемых файлах. Например, представьте, что у меня есть три файла a, b и c, где a и b равны ...
14.06.2019
3
ответа

Как я могу протестировать на соответствие POSIX сценариев оболочки?

Полагая, что POSIX является самой близкой вещью к единому стандарту среди всех нельдов, я интересуюсь знанием, если существует оболочка, которая поддерживает его исключительно. В то время как большинство современных оболочек оказывает поддержку...
08.06.2018
3
ответа

Оболочка posix: вывести список имен переменных среды (без значений)

В posix-совместимый способ, который работает с несколькими реализациями, как я могу распечатать список текущих определенных переменных среды без их значений? В некоторых реализациях (mksh, freebsd /...
23.04.2018
3
ответа

Существует ли ОСРВ с открытым исходным кодом, совместимая с POSIX PSE51?

Стандарт IEEE 1003.13-2003 определяет набор профилей POSIX для систем реального времени. PSE51 - один из таких профилей. Я изучаю PSE51 и думаю, было бы очень полезно, если бы у меня был доступ к ...
19.03.2018