Le code simple fonctionne ici comme prévu sur ma machine s'il est lancé avec bash
:
function ⏰(){
date
}
⏰
Pourrait-il y avoir un problème pour les autres utilisateurs, ou est-ce universel?
Je me demande parce que je n'ai jamais rien vu de tel dans un autre code source pour le moment.
Edit: Il existe des possibilités illimitées, il peut être utilisé pour distinguer rapidement un rôle de fonction avec l'utilisation d'un emoji par exemple.
Un pour quelque chose qui peut modifier ou supprimer des fichiers, un s'il s'agit d'un travail en cours, pour un menu interactif ...
Je suppose que nous devrions créer une norme pour tout cela, mais cela semble être une idée intéressante.
Peut-être qu'une ligne aléatoire de ~ 5 caractères peut nous aider beaucoup à comprendre ce que fait le code. (Bien sûr, nous devons apprendre à les lire.)
Plus edit: Je donne un coup de feu. Pour l'instant, si je plie toutes mes fonctions dans mon éditeur (ou cat myscript.sh|grep function
), elles ressemblent à ceci. (Mon unicode est beaucoup mieux dans geany
ou mon terminal par rapport à ici.)
function ⬚_1(){
function ⬚⬚_2(){
function ⬚⬚⬚_📃_D(){
function ⬚⬚⬚⬚_📃_X(){
function ⬚⬚⬚⬚⬚_📃_Y(){
function ⬚⬚⬚⬚⬚⬚_❓_P(){
function ⬚⬚⬚⬚_📃_Z(){
function ⬚⬚⬚⬚⬚_❓_U(){
function ⬚⬚⬚⬚⬚_❓_O(){
J'utilise une indentation étrange ⬚ pour montrer comment les fonctions sont liées les unes aux autres et un symbole / pour distinguer clairement leur rôle. (Bien sûr, ce ne sont pas mes vrais noms de fonction, je mets juste une lettre au hasard à la fin, mais même sans eux, nous pouvons clairement voir les relations.)
echo $foo
est en sécurité.Réponses:
Une "ligne directrice utile" est "l’interface portable du système d’exploitation" (POSIX), une famille de normes mise en oeuvre par la plupart des systèmes de type Unix. Il est généralement judicieux de limiter les scripts shell aux fonctionnalités mandatées par POSIX afin de s’assurer qu’ils seront utilisables sur différents shells et plates-formes.
Selon la spécification POSIX des définitions de fonction dans le "langage de commande shell" :
En suivant le lien vers la définition d'un "nom" :
Ce jeu de caractères ne contient que des caractères compris entre U0000 et U007E.
Par conséquent, des caractères tels que "" (U23F0) ne sont pas valides dans un identifiant compatible POSIX.
Votre shell pourrait les accepter, mais cela ne garantit pas que les autres le feront aussi.
Pour pouvoir utiliser votre script sur différentes plates-formes et versions logicielles, évitez d'utiliser des identificateurs non conformes comme celui-ci.
la source