https://magicant.github.io/yash/ Este ReadMe também está disponível em 日本語.
Yash, mais uma concha, é um shell de linha de comando compatível com Posix escrito em C99 (ISO/IEC 9899: 1999). Yash pretende ser o shell mais compatível com Posix do mundo, enquanto apoia os recursos para uso diário interativo e de scripts. Recursos notáveis são:
O YASH pode ser modificado/redistribuído nos termos da licença pública geral da GNU (versão 2), mas o uso deste programa é sem garantia. Consulte o arquivo de cópia para obter o texto completo da GPL.
Yash é mantido no Github, mas anteriormente estava no OSDN.
Yash agora suporta totalmente Posix.1-2008 (IEEE STD 1003.1, edição de 2016), exceto pelas limitações listadas abaixo.
Yash é estável. Uma atualização de manutenção é lançada a cada três meses. Para o histórico de mudanças, consulte o arquivo de notícias.
Yash deve construir e executar em qualquer ambiente POSIX.1-2001 com os utilitários de desenvolvimento de software e as opções de utilitários de desenvolvimento da linguagem C.
Atualmente, Yash é testado principalmente em Fedora, MacOS e Cygwin.
Consulte o arquivo de instalação para ver como construir e instalar Yash.
Após a instalação, o manual pode ser visto por
$ man yash
O manual também está disponível online em https://magicant.github.io/yash/doc/.
Abaixo está uma descrição da configuração básica que você pode querer ver após a instalação para começar com Yash. Para detalhes de configuração, consulte o manual.
Quando o YASH é iniciado como um shell de login, ele lê $XDG_CONFIG_HOME/yash/profile ou ~/.yash_profile como fallback. Este arquivo é um script de shell no qual você define variáveis de ambiente usando o comando de exportação.
Quando o YASH é iniciado para uso interativo, ele lê $XDG_CONFIG_HOME/yash/rc ou ~/.yashrc (depois de ler $XDG_CONFIG_HOME/yash/profile se for um shell de login também). Neste arquivo, você faz outras configurações, como aliases, cordas rápidas, ligações de chave para edição de linha de comando e manipulador de comando não-acordados. Use o arquivo de compartilhamento/inicialização/amostra como modelo para o seu $XDG_CONFIG_HOME/yash/rc .
Em muitos oses do tipo UNIX, um shell deve ser listado em /etc/shells a serem definidos como um shell de login. Edite este arquivo e verifique se o caminho para Yash está gravado no arquivo.
Em seguida, execute o comando chsh no terminal e siga as instruções do comando. Dependendo do seu sistema, talvez você precise usar outro comando para alterar o shell de login. Consulte a documentação no seu sistema.
__attribute__ é usada no código -fonte. Quando não é compilado com GCC ou CLANG, essa palavra -chave é removida pelo pré -processador; portanto, geralmente não há mal. Mas se o seu compilador usar essa palavra -chave para qualquer outra finalidade, a compilação poderá falhar. Além disso, alguns outros identificadores que começam com _ podem causar erros de compilação em alguns ambientes raros. 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ão é suportada: é silenciosamente ignorada.PS1 está sujeito à expansão dos parâmetros. Yash realiza substituição de comando e expansão aritmética também no valor do PS1 .printf %c foo deve imprimir o primeiro byte de string foo . Yash imprime o primeiro personagem de foo , que pode ser mais de um byte.return embutido, se executado em uma armadilha, pode operar apenas em uma função, script ou loop que foi executado dentro da armadilha. Essa limitação não é estritamente compatível com Posix, mas necessária para um comportamento consistente e previsível da concha.$LINENO ) não pode ser contado corretamente e após uma expansão complexa contendo uma continuação da linha.HAVE_WCSNRTOMBS no arquivo de cabeçalho config.h . Comentários, sugestões e relatórios de insetos são bem -vindos em:
Se você estiver interessado em tradução, consulte a tradução.md.
Watanabe, yuki [email protected]