Простой код здесь работает, как и ожидалось, на моей машине, если запущен с bash
:
function ⏰(){
date
}
⏰
Может ли быть проблема для других людей, использующих это, или это универсально?
Мне интересно, потому что я никогда не видел ничего подобного в другом исходном коде.
Изменить: Есть неограниченные возможности, его можно использовать, чтобы быстро отличить роль функции, например, с помощью смайликов.
💣 для чего-то, что может изменять или удалять файлы, 🔧, если это в процессе разработки,, для интерактивного меню ...
Я предполагаю, что мы должны создать стандарт для всего этого, но это, кажется, интересная идея.
Возможно, случайная строка из ~ 5 символов поможет нам лучше понять, что делает код. (Конечно, нам нужно научиться их читать.)
Больше редактировать: я даю ему шанс. На данный момент, если я сложу все свои функции в моем редакторе (или cat myscript.sh|grep function
), они будут выглядеть следующим образом. (Мой юникод выглядит намного лучше в geany
моем терминале, чем здесь.)
function ⬚_1(){
function ⬚⬚_2(){
function ⬚⬚⬚_📃_D(){
function ⬚⬚⬚⬚_📃_X(){
function ⬚⬚⬚⬚⬚_📃_Y(){
function ⬚⬚⬚⬚⬚⬚_❓_P(){
function ⬚⬚⬚⬚_📃_Z(){
function ⬚⬚⬚⬚⬚_❓_U(){
function ⬚⬚⬚⬚⬚_❓_O(){
Я использую странный отступ ⬚, чтобы показать, как функции связаны друг с другом, и символ 📃 / ❓, чтобы четко различать их роль. (Конечно, это не мои настоящие имена функций, я просто вставляю случайную букву в конце, но даже без них мы можем ясно видеть отношения.)
echo $foo
это безопасно.Ответы:
Полезным указанием для этого является «Портативный интерфейс операционной системы» (POSIX), семейство стандартов, которое применяется большинством Unix-подобных систем. Обычно рекомендуется ограничить использование сценариев оболочки функциями, предусмотренными POSIX, чтобы обеспечить их использование на различных оболочках и платформах.
В соответствии со спецификацией POSIX определений функций в «Командном языке оболочки» :
Перейдя по ссылке на определение «имя» :
Этот набор символов содержит только символы между U0000 и U007E.
Поэтому такие символы, как «⏰» (U23F0), недопустимы в POSIX-совместимом идентификаторе.
Ваша оболочка может принять их, но это не гарантирует, что другие тоже примут.
Чтобы иметь возможность использовать ваш скрипт на разных платформах и версиях программного обеспечения, вам следует избегать использования таких несовместимых идентификаторов.
источник