https://magicant.github.io/yash/ Ce lecture est également disponible en 日本語.
Yash, encore un autre shell, est un shell de ligne de commande conforme à POSIX écrit en C99 (ISO / IEC 9899: 1999). Yash est destiné à être le shell le plus conforme à POSIX au monde tout en prenant en charge les fonctionnalités pour une utilisation quotidienne interactive et des scripts. Les fonctionnalités notables sont:
Yash peut être modifié / redistribué en vertu des termes de la licence publique générale GNU (version 2), mais l'utilisation de ce programme est sans aucune garantie. Voir le fichier de copie pour le texte intégral de GPL.
Yash est maintenu sur Github, mais était auparavant sur OSDN.
Yash prend désormais en charge POSIX.1-2008 (IEEE STD 1003.1, édition 2016) à l'exception des limitations énumérées ci-dessous.
Yash est stable. Une mise à jour de maintenance est publiée tous les trois mois environ. Pour l'historique du changement, consultez le fichier d'informations.
Yash est censé construire et exécuter sur n'importe quel environnement POSIX.1-2001 avec les utilitaires de développement logiciel et les options de services publics de développement C.
Actuellement, Yash est principalement testé sur Fedora, MacOS et Cygwin.
Voir le fichier d'installation pour voir comment construire et installer Yash.
Après l'installation, le manuel peut être vu par
$ man yash
Le manuel est également disponible en ligne sur https://magicant.github.io/yash/doc/.
Vous trouverez ci-dessous une description de la configuration de base que vous voudrez peut-être voir après l'installation pour démarrer avec Yash. Pour les détails de la configuration, consultez le manuel.
Lorsque Yash est démarré en tant que shell de connexion, il lit $XDG_CONFIG_HOME/yash/profile ou ~/.yash_profile en tant que repli. Ce fichier est un script shell dans lequel vous définissez les variables d'environnement à l'aide de la commande Export.
Lorsque Yash est démarré pour une utilisation interactive, il lit $XDG_CONFIG_HOME/yash/rc ou ~/.yashrc (après avoir lu $XDG_CONFIG_HOME/yash/profile s'il s'agit également d'un shell de connexion). Dans ce fichier, vous effectuez d'autres configurations telles que les alias, les chaînes d'invite, les liaisons clés pour l'édition de ligne de commande et le gestionnaire de commande-ne pas-fond. Utilisez le fichier Share / Initialisation / Exemple comme modèle pour votre $XDG_CONFIG_HOME/yash/rc .
Dans de nombreux OSE de type Unix, un shell doit être répertorié dans /etc/shells pour être défini sous forme de coquille de connexion. Modifiez ce fichier et assurez-vous que le chemin d'accès à Yash est écrit dans le fichier.
Ensuite, exécutez la commande chsh dans le terminal et suivez les instructions de la commande. Selon votre système, vous devrez peut-être utiliser une autre commande pour modifier le shell de connexion. Voir la documentation sur votre système.
__attribute__ est utilisé dans le code source. Lorsqu'il n'est pas compilé avec GCC ou Clang, ce mot-clé est supprimé par le préprocesseur, il n'y a donc généralement pas de mal. Mais si votre compilateur utilise ce mot-clé à d'autres fins, la compilation peut échouer. De plus, certains autres identifiants commençant par _ peuvent provoquer des erreurs de compilation sur certains environnements rares. 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 n'est pas prise en charge: elle est ignorée silencieusement.PS1 est soumise à l'expansion des paramètres. Yash effectue également une substitution de commandement et une expansion arithmétique sur la valeur PS1 .printf %c foo devrait imprimer le premier octet de String foo . Yash imprime le premier caractère de foo , qui peut être plus d'un octet.return intégré, s'il est exécuté dans un piège, ne peut fonctionner que sur une fonction, un script ou une boucle qui a été exécuté dans le piège. Cette limitation n'est pas strictement conforme à POSIX, mais nécessaire pour un comportement cohérent et prévisible de la coquille.$LINENO ) peut ne pas être compté correctement dans et après une extension complexe contenant une continuation de ligne.HAVE_WCSNRTOMBS dans le fichier d'en-tête config.h . Les commentaires, les suggestions et les rapports de bogues sont les bienvenus:
Si vous êtes intéressé par la traduction, veuillez vous référer à Traduction.md.
Watanabe, yuki [email protected]