Der einfache Code hier funktioniert erwartungsgemäß auf meinem Computer, wenn er mit bash
folgendem Befehl gestartet wird :
function ⏰(){
date
}
⏰
Könnte es ein Problem für andere geben, die das benutzen, oder ist es universell?
Ich frage mich, weil ich so etwas noch nie in einem anderen Quellcode gesehen habe.
Bearbeiten: Es gibt unbegrenzte Möglichkeiten, um beispielsweise bei der Verwendung eines Emoji schnell eine Funktionsrolle zu unterscheiden.
A 💣 für etwas, das Dateien ändern oder entfernen kann, A 🔧 wenn es sich um eine laufende Arbeit handelt, 📃 für ein interaktives Menü ...
Ich denke, wir sollten einen Standard für all das schaffen, aber es scheint eine interessante Idee zu sein.
Vielleicht kann uns eine zufällige Zeile mit ~ 5 Zeichen viel helfen, zu verstehen, was der Code tut. (Natürlich müssen wir lernen, wie man sie liest.)
Mehr bearbeiten: Ich gebe es eine Chance. Fürs Erste, wenn ich alle meine Funktionen in meinem Editor (oder cat myscript.sh|grep function
) falte, sehen sie so aus. (Mein Unicode sieht in geany
oder in meinem Terminal viel besser aus als hier.)
function ⬚_1(){
function ⬚⬚_2(){
function ⬚⬚⬚_📃_D(){
function ⬚⬚⬚⬚_📃_X(){
function ⬚⬚⬚⬚⬚_📃_Y(){
function ⬚⬚⬚⬚⬚⬚_❓_P(){
function ⬚⬚⬚⬚_📃_Z(){
function ⬚⬚⬚⬚⬚_❓_U(){
function ⬚⬚⬚⬚⬚_❓_O(){
Ich benutze einen seltsamen Einzug ⬚, um zu zeigen, wie die Funktionen zueinander in Beziehung stehen, und ein Symbol 📃 / ❓, um ihre Rolle klar zu unterscheiden. (Natürlich sind dies nicht meine eigentlichen Funktionsnamen, ich setze nur einen zufälligen Buchstaben am Ende, aber auch ohne sie können wir die Zusammenhänge klar erkennen.)
echo $foo
ist sicher.Antworten:
Eine nützliche Richtlinie hierfür ist das "Portable Operating System Interface" (POSIX), eine Standardfamilie, die von den meisten Unix-ähnlichen Systemen implementiert wird. In der Regel empfiehlt es sich, Shell-Skripte auf von POSIX vorgeschriebene Funktionen zu beschränken, um sicherzustellen, dass sie für verschiedene Shells und Plattformen verwendet werden können.
Gemäß der POSIX-Spezifikation von Funktionsdefinitionen in der "Shell Command Language" :
Folgen Sie dem Link zur Definition eines "Namens" :
Dieser Zeichensatz enthält nur Zeichen zwischen U0000 und U007E.
Daher sind Zeichen wie "⏰" (U23F0) in einem POSIX-kompatiblen Bezeichner nicht gültig.
Ihre Shell akzeptiert sie vielleicht, aber das garantiert nicht, dass andere das auch tun.
Um Ihr Skript auf verschiedenen Plattformen und Softwareversionen verwenden zu können, sollten Sie solche nicht kompatiblen Bezeichner vermeiden.
quelle