https://magicant.github.io/yash/ Это чтение также доступно в 日本語.
Yash, еще одна оболочка, является Posix-совместимой оболочкой командной строки, написанной в C99 (ISO/IEC 9899: 1999). Yash предназначен для того, чтобы быть самой Posix-совместимой оболочкой в мире, поддерживая функции для ежедневного интерактивного использования и сценариев. Примечательными функциями являются:
YASH может быть изменен/перераспределен в соответствии с условиями общей публичной лицензии GNU (версия 2), но использование этой программы без какой -либо гарантии. См. Копирующий файл для полного текста GPL.
Яш поддерживается на GitHub, но ранее был на OSDN.
Теперь YASH полностью поддерживает POSIX.1-2008 (IEEE STD 1003.1, Edition 2016), за исключением ограничений, перечисленных ниже.
Яш стабилен. Обновление технического обслуживания выпускается каждые три месяца или около того. Для истории изменений см. Файл новостей.
Предполагается, что Yash будет создавать и работать на любой среде POSIX.1-2001 с утилитами разработки программного обеспечения и вариантами утилит разработки C.
В настоящее время Yash в основном проверяется на Fedora, MacOS и Cygwin.
Смотрите файл установки, чтобы увидеть, как построить и установить YASH.
После установки руководство можно просмотреть
$ man yash
Руководство также доступно онлайн по адресу https://magicant.github.io/yash/doc/.
Ниже приведено описание базовой конфигурации, которую вы, возможно, захотите увидеть после установки, чтобы начать работу с YASH. Для получения деталей конфигурации см. Руководство.
Когда Yash запускается как оболочка для входа в систему, он читает $XDG_CONFIG_HOME/yash/profile или ~/.yash_profile как резерв. Этот файл является скриптом оболочки, в котором вы определяете переменные среды, используя команду Export.
Когда YASH начинается для интерактивного использования, он считывает $XDG_CONFIG_HOME/yash/rc или ~/.yashrc (после прочтения $XDG_CONFIG_HOME/yash/profile если это также оболочка входа в систему). В этом файле вы делаете другие конфигурации, такие как псевдонимы, строки приглашения, привязки ключей для редактирования командной строки и обработчика с командными-не в основе. Используйте файл Share/инициализация/пример в качестве шаблона для вашего $XDG_CONFIG_HOME/yash/rc .
Во многих Unix-подобных OSES оболочка должна быть указана в /etc/shells , которые будут установлены в качестве оболочки логина. Отредактируйте этот файл и убедитесь, что путь к YASH записан в файле.
Затем запустите команду chsh в терминале и следуйте инструкциям из команды. В зависимости от вашей системы, вам, возможно, придется использовать другую команду для изменения оболочки входа в систему. Смотрите документацию по вашей системе.
__attribute__ используется в исходном коде. Когда это не составлено с GCC или Clang, это ключевое слово удаляется препроцессором, поэтому обычно нет никакого вреда. Но если ваш компилятор использует это ключевое слово для любых других целей, компиляция может сбой. Кроме того, некоторые другие идентификаторы, начиная с _ могут вызвать ошибки компиляции в некоторых редких средах. 0400=user read 0200=user write 0100=user execute
0040=group read 0020=group write 0010=group execute
0004=other read 0002=other write 0001=other execute
-o nolog не поддерживается: он молча игнорируется.PS1 подлежит расширению параметров. Yash выполняет командную замену и арифметическое расширение, а также на значение PS1 .printf %c foo должен распечатать первый байт строки foo . Yash печатает первый персонаж foo , который может быть более одного байта.return , если он выполнен в ловушке, может работать только на функции, сценарии или цикле, который был выполнен в ловушке. Это ограничение не является строго POSIX-совместимым, но необходимо для последовательного и предсказуемого поведения оболочки.$LINENO ) может не учитывать правильно в и после сложного расширения, содержащего продолжение линии.HAVE_WCSNRTOMBS в файле заголовка config.h . Комментарии, предложения и отчеты об ошибках приветствуются на:
Если вы заинтересованы в переводе, пожалуйста, обратитесь к Translation.md.
Watanabe, Yuki [email protected]