В моем тестировании (в Bash и Z Shell) я не видел проблем с определением функций или псевдонимов или исполняемых сценариев оболочки, в имени которых есть дефисы, но я не уверен, что это будет хорошо во всех оболочках и во всех случаях использования. ,
Причина, по которой я хотел бы сделать это, заключается в том, что дефис легче набирать, чем подчеркивание, и, следовательно, быстрее и плавнее.
Одна причина, по которой я не решаюсь полагать, что это не проблема, заключается в том, что в некоторых языках (например, в Ruby) дефис будет интерпретироваться как знак минус, даже без пробелов вокруг него. Меня не удивит, если что-то подобное может произойти в некоторых оболочках, где дефис интерпретируется как сигнал опции, даже без пробела.
Другая причина, по которой я немного подозрительна, заключается в том, что мой текстовый редактор испортил подсветку синтаксиса для функций с дефисами. (Но, конечно, вполне возможно, что это просто ошибка в конфигурации подсветки синтаксиса для сценариев оболочки.)
Есть ли причина избегать дефисов?
-
в них злые. Я смотрю на тебя, CSS. :)csh
иtcsh
они не поддерживают переносы либо, но Korn оболочки сделал. Немного забавно, что я также использовалa-b()
название своей функции.Я знаю, что уже поздно, но, возможно, вы можете обойти свою проблему, сделав подчеркивание более доступным.
Это переключит подчеркивание с дефиса (минус).
Итак, теперь вы держите shift для дефиса, но подчеркивание печатается без shift.
Ваш код ключа может отличаться, однако, я думаю, это зависит от вашей клавиатуры; у меня их 20. Просто дайте мне знать, если вам нужна помощь в поиске того, какой код ключа вам нужно использовать.
источник