bash / shell 스크립트에서 ⏰와 같은 UTF-8 문자를 사용해야합니까? 편집 :

다음과 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(){

나는 이상한 들여 쓰기 ⬚를 사용하여 기능이 서로 어떻게 관련되어 있는지 보여주고 ? / ❓ 기호를 사용하여 역할을 명확하게 구분합니다. (물론 이것은 실제 함수 이름이 아니며 끝에 임의의 문자를 넣지 만 관계없이 명확하게 볼 수 있습니다.)



답변

이에 대한 유용한 지침은 대부분의 유닉스 계열 시스템에 의해 구현되는 표준 제품군 인 “휴대용 운영 체제 인터페이스”(POSIX)입니다. 일반적으로 쉘 스크립트를 POSIX가 지정한 기능으로 제한하여 다른 쉘과 플랫폼에서 사용 가능하도록하는 것이 좋습니다.

“Shell Command Language”함수 정의에 대한 POSIX 사양에 따르면 :

함수 이름은 fname입니다. 응용 프로그램은 그것이 이름인지 확인해야합니다 (IEEE Std 1003.1-2001의 기본 정의 볼륨, 섹션 3.230, 이름 참조 ). 구현시 함수 이름의 다른 문자를 확장명으로 사용할 수 있습니다.

“이름”정의에 대한 링크를 따라 :

쉘 명령 언어에서 휴대용 문자 세트 의 밑줄, 숫자 및 알파벳으로 만 구성된 단어 .

해당 문자 세트에는 U0000과 U007E 사이의 문자 만 포함됩니다.
따라서 “⏰”(U23F0)와 같은 문자는 POSIX 호환 식별자에서 유효하지 않습니다.

당신의 껍질은 그것들을 받아 들일 수 있지만, 다른 사람들도 그렇게 할 것이라고 보장하지는 않습니다 .
다른 플랫폼 및 소프트웨어 버전에서 스크립트를 사용하려면 이와 같은 비 호환 식별자를 사용하지 않아야합니다.


답변