O código simples aqui está funcionando conforme o esperado na minha máquina se iniciado com bash
:
function ⏰(){
date
}
⏰
Poderia haver um problema para outras pessoas usando isso, ou é universal?
Eu estou pensando, porque eu nunca vi nada parecido com isso em outro código-fonte por enquanto.
Editar: existem possibilidades ilimitadas, ele pode ser usado para distinguir rapidamente uma função com o uso de um emoji, por exemplo.
A para algo que pode modificar ou remover arquivos, e se for um trabalho em andamento, para um menu interativo ...
Acho que devemos criar um padrão para tudo isso, mas parece ser uma ideia interessante.
Talvez uma linha aleatória de ~ 5 caracteres possa nos ajudar a entender o que o código está fazendo. (É claro que precisamos aprender a lê-los.)
Mais editar: estou tentando. Por enquanto, se eu dobrar todas as minhas funções no meu editor (Or cat myscript.sh|grep function
), elas serão assim. (Meu unicode parece muito melhor geany
ou meu terminal em comparação com aqui.)
function ⬚_1(){
function ⬚⬚_2(){
function ⬚⬚⬚_📃_D(){
function ⬚⬚⬚⬚_📃_X(){
function ⬚⬚⬚⬚⬚_📃_Y(){
function ⬚⬚⬚⬚⬚⬚_❓_P(){
function ⬚⬚⬚⬚_📃_Z(){
function ⬚⬚⬚⬚⬚_❓_U(){
function ⬚⬚⬚⬚⬚_❓_O(){
Uso um recuo estranho strange para mostrar como as funções estão relacionadas entre si e um símbolo 📃 / ❓ para distinguir claramente seu papel. (É claro que esses não são meus nomes reais de funções, basta colocar uma letra aleatória no final, mas mesmo sem eles, podemos ver claramente os relacionamentos.)
echo $foo
é seguro.Respostas:
Uma orientação útil para isso é a "Interface do sistema operacional portátil" (POSIX), uma família de padrões implementada pela maioria dos sistemas do tipo Unix. Geralmente, é uma boa idéia limitar os scripts de shell aos recursos exigidos pelo POSIX para garantir que eles sejam utilizáveis em diferentes shells e plataformas.
De acordo com a especificação POSIX de definições de função na "Shell Command Language" :
Seguindo o link para a definição de um "nome" :
Esse conjunto de caracteres contém apenas caracteres entre U0000 e U007E.
Portanto, caracteres como "⏰" (U23F0) não são válidos em um identificador compatível com POSIX.
Seu shell pode aceitá-los, mas isso não garante que outros o aceitem também.
Para poder usar seu script em diferentes plataformas e versões de software, evite usar identificadores não compatíveis como este.
fonte