https://magicant.github.io/yash/此readme也可以在日本语中获得。
Yash是另一个外壳,是用C99(ISO/IEC 9899:1999)编写的符合POSIX的命令线外壳。 Yash旨在成为世界上最合并的外壳,同时为日常互动和脚本使用提供支持。值得注意的功能是:
可以根据GNU通用公共许可证的条款进行修改/重新分配Yash(版本2),但使用此程序没有任何保证。有关GPL的全文,请参见复制文件。
Yash在Github上保持一致,但以前在OSDN上。
Yash现在完全支持Posix.1-2008(IEEE STD 1003.1,2016 Edition),但下面列出的限制。
Yash是稳定的。每三个月左右发布一次维护更新。有关更改历史记录,请参阅新闻文件。
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作为后备。该文件是一个shell脚本,您可以在其中使用导出命令来定义环境变量。
启动Yash进行交互式使用时,它会读取$XDG_CONFIG_HOME/yash/rc或~/.yashrc (在阅读$XDG_CONFIG_HOME/yash/profile后,如果它也是登录外壳,也是如此)。在此文件中,您可以制作其他配置,例如别名,提示字符串,命令行编辑的钥匙绑定以及命令未找到的处理程序。使用共享/初始化/示例文件作为$XDG_CONFIG_HOME/yash/rc的模板。
在许多类似Unix的OS中,必须在/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 )在包含线路延续的复杂扩展中不正确计数。config.h头文件中未定义HAVE_WCSNRTOMBS宏来解决这可以解决这一问题。 欢迎评论,建议和错误报告:
如果您对翻译感兴趣,请参考translating.md。
渡边,Yuki [email protected]