https://magicant.github.io/yash/ Dieser Readme ist auch in 日本語 erhältlich.
Yash, noch eine Shell, ist eine in C99 geschriebene POSIX-konforme Befehlszeilenschale (ISO/IEC 9899: 1999). Yash soll die posix-konforme Hülle der Welt sein und gleichzeitig Funktionen für die tägliche interaktive und skriptende Verwendung unterstützen. Bemerkenswerte Merkmale sind:
Yash kann gemäß den Bestimmungen der GNU General Public Lizenz (Version 2) geändert/umverteilt werden, aber die Verwendung dieses Programms ist ohne Garantie. In der Kopierdatei finden Sie den vollständigen Text von GPL.
Yash wird auf Github aufrechterhalten, war jedoch früher unter OSDN.
Yash unterstützt jetzt POSIX.1-2008 (IEEE STD 1003.1, 2016 Ausgabe) mit Ausnahme der unten aufgeführten Einschränkungen.
Yash ist stabil. Ein Wartungs -Update wird alle drei Monate oder so veröffentlicht. Für die Änderungsgeschichte finden Sie in der Nachrichtendatei.
Yash soll auf einer beliebigen posix.1-2001-Umgebung mit den Softwareentwicklungsversorgungsunternehmen und den Optionen für C-Spracheentwicklungsversorgungsunternehmen erstellen und ausgeführt werden.
Derzeit wird Yash hauptsächlich auf Fedora, MacOS und Cygwin getestet.
Sehen Sie sich die Installationsdatei an, um Yash zu erstellen und zu installieren.
Nach der Installation kann das Handbuch von betrachtet werden
$ man yash
Das Handbuch ist auch online unter https://magicant.github.io/yash/doc/ erhältlich.
Im Folgenden finden Sie eine Beschreibung der grundlegenden Konfiguration, die Sie nach der Installation sehen möchten, um mit Yash zu beginnen. Konfigurationsdetails finden Sie im Handbuch.
Wenn Yash als Login -Shell gestartet wird, liest es $XDG_CONFIG_HOME/yash/profile oder ~/.yash_profile als Fallback. Diese Datei ist ein Shell -Skript, in dem Sie Umgebungsvariablen mit dem Befehl export definieren.
Wenn Yash für eine interaktive Verwendung gestartet wird, liest es $XDG_CONFIG_HOME/yash/rc oder ~/.yashrc (nach dem Lesen $XDG_CONFIG_HOME/yash/profile wenn es sich auch um eine Anmeldebereich handelt). In dieser Datei erstellen Sie andere Konfigurationen wie Aliase, Eingabeaufforderungen, Schlüsselbindungen für die Bearbeitung von Befehlszeilen und den Befehlsfund-Handler. Verwenden Sie die Datei zur Freigabe/Initialisierung/Beispiel als Vorlage für Ihre $XDG_CONFIG_HOME/yash/rc .
In vielen Unix-ähnlichen Osen muss eine Shell in /etc/shells aufgeführt werden, um als Anmeldeschale festgelegt zu werden. Bearbeiten Sie diese Datei und stellen Sie sicher, dass der Pfad zu Yash in der Datei geschrieben ist.
Führen Sie dann den chsh -Befehl im Terminal aus und befolgen Sie die Anweisungen aus dem Befehl. Abhängig von Ihrem System müssen Sie möglicherweise einen anderen Befehl verwenden, um die Anmeldeschale zu ändern. Siehe Dokumentation in Ihrem System.
__attribute__ wird im Quellcode verwendet. Wenn dieses Schlüsselwort nicht mit GCC oder Clang kompiliert wird, wird das Präprozessor entfernt, so dass im Allgemeinen keinen Schaden vorhanden ist. Wenn Ihr Compiler dieses Schlüsselwort für einen anderen Zweck verwendet, kann die Kompilierung fehlschlagen. Darüber hinaus können einige andere Kennungen, die mit _ beginnen, Kompilierungsfehler in einigen seltenen Umgebungen verursachen. 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 wird nicht unterstützt: Sie wird stillschweigend ignoriert.PS1 der Parameterausdehnung. Yash führt die Befehlssubstitution und die arithmetische Expansion sowie den PS1 -Wert durch.printf %c foo das erste Byte von String foo drucken. Yash druckt den ersten Charakter von foo , das mehr als ein Byte sein kann.return kann, wenn sie in einer Falle ausgeführt wird, nur mit einer Funktion, einem Skript oder einer Schleife in der Falle ausgeführt. Diese Einschränkung ist nicht streng posix-konform, sondern für ein konsequentes und vorhersehbares Verhalten der Schale erforderlich.$LINENO ) wird in und nach einer komplexen Expansion, die eine Linien -Fortsetzung enthält, möglicherweise nicht korrekt gezählt.HAVE_WCSNRTOMBS in der Header -Datei config.h -Header nicht angegeben wird. Kommentare, Vorschläge und Fehlerberichte sind willkommen unter:
Wenn Sie an der Übersetzung interessiert sind, finden Sie in Translating.md.
Watanabe, yuki [email protected]