Prosty kod działa tutaj zgodnie z oczekiwaniami na moim komputerze, jeśli jest uruchamiany z bash
:
function ⏰(){
date
}
⏰
Czy może być problem dla innych osób korzystających z tego, czy może jest on uniwersalny?
Zastanawiam się, ponieważ na razie nie widziałem czegoś takiego w innym kodzie źródłowym.
Edycja: Istnieją nieograniczone możliwości, można jej użyć do szybkiego rozróżnienia roli funkcji na przykład za pomocą emoji.
A dla czegoś, co może modyfikować lub usuwać pliki, 🔧 jeśli jest to praca w toku, 📃 dla interaktywnego menu ...
Myślę, że powinniśmy stworzyć standard dla tego wszystkiego, ale wydaje się to interesującym pomysłem.
Może losowa linia ~ 5 znaków może nam pomóc w zrozumieniu tego, co robi kod. (Oczywiście musimy nauczyć się je czytać.)
Więcej edycji: daję temu szansę. Na razie, jeśli złożę wszystkie moje funkcje w moim edytorze (lub cat myscript.sh|grep function
), będą wyglądać tak. (Mój Unicode wygląda znacznie lepiej w geany
moim terminalu lub w porównaniu do tego tutaj.)
function ⬚_1(){
function ⬚⬚_2(){
function ⬚⬚⬚_📃_D(){
function ⬚⬚⬚⬚_📃_X(){
function ⬚⬚⬚⬚⬚_📃_Y(){
function ⬚⬚⬚⬚⬚⬚_❓_P(){
function ⬚⬚⬚⬚_📃_Z(){
function ⬚⬚⬚⬚⬚_❓_U(){
function ⬚⬚⬚⬚⬚_❓_O(){
Używam dziwnego wcięcia ⬚, aby pokazać, w jaki sposób funkcje są ze sobą powiązane, oraz symbolu 📃 / ❓, aby wyraźnie rozróżnić ich rolę. (Oczywiście nie są to moje prawdziwe nazwy funkcji, po prostu umieszczam losową literę na końcu, ale nawet bez nich możemy wyraźnie zobaczyć relacje.)
echo $foo
jest bezpieczne.Odpowiedzi:
Przydatną wskazówką jest „Przenośny interfejs systemu operacyjnego” (POSIX), rodzina standardów implementowana przez większość systemów uniksopodobnych. Zazwyczaj dobrym pomysłem jest ograniczenie skryptów powłoki do funkcji wymaganych przez POSIX, aby mieć pewność, że będą one dostępne na różnych powłokach i platformach.
Zgodnie ze specyfikacją POSIX definicji funkcji w „języku poleceń powłoki” :
Po linku do definicji „nazwy” :
Ten zestaw znaków zawiera tylko znaki między U0000 a U007E.
Dlatego znaki takie jak „⏰” (U23F0) nie są poprawne w identyfikatorze zgodnym z POSIX.
Twoja powłoka może je zaakceptować, ale to nie gwarantuje, że inni też to zrobią.
Aby móc korzystać ze skryptu na różnych platformach i wersjach oprogramowania, należy unikać używania takich niezgodnych identyfikatorów.
źródło