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]