변수와 별칭은 동일한 범주에 속합니까?

변수와 별칭은 동일한 범주에 속합니까?

이는 용어/아키텍처 문제입니다.

시스템을 보다 쉽게 ​​제어하기 위해 가장 기본적인 구현 중 일부는 변수와 별칭입니다(일부는 기호 링크를 추가할 수 있음).

변수와 심볼릭 링크는 모두 "뒤에서 라이브"되며 사용자가 호출할 수 있습니다(내 생각에는 "확장"이 둘 다에 좋은 것 같습니다).

변수와 별칭이 동일한 범주에 속하는지 묻고 있습니다. 목록이 포함된 파일의 이름을 더 잘 지정하고 싶기 때문입니다(첫 번째 부분은 변수이고 두 번째 부분은 일부 변수에 별칭을 사용하는 일부입니다).

두 사람이 공유할 수 있는 그룹이나 카테고리와 유사할 수 있는 "Background_data.sh"와 같은 일반적인 이름 대신 더 "표준적인" 이름을 지정하고 싶지 않았습니다.

답변1

별칭, 함수, 변수 등이 속하는 "범주"는 다음과 같습니다.환경, "쉘 환경"에서와 같이.

변수와 별칭은 심볼릭 링크와 마찬가지로 매우 다릅니다.아니요셸 환경의 일부이지만 셸과 독립적인 파일 시스템에 있는 것입니다.

  • 쉘 변수든 환경 변수든 변수는 문자열 형식으로 데이터를 보유합니다.

  • 별칭은 자주 반복되는 명령을 입력하는 시간을 절약하기 위해 대화형 셸 세션에서 사용할 수 있는 편리한 바로 가기입니다. 별칭은 변수와 별도의 평가 단계에서 확장됩니다. 귀하의 스크립트에서 다음을 사용하고 싶을 가능성이 가장 높습니다.기능별칭이 아니라 명령 이름 을 단순히 텍스트로 대체하는 것 이상입니다1 .

  • 심볼릭 링크는 액세스할 때 자동으로 경로를 확인하는 파일 시스템의 특수한 유형의 파일입니다.

파일을 호출하는 방법에 관해서는 일부 응용 프로그램이나 프로세스에 대한 환경을 설정하기 위해 (예: 셸을 통해 또는 해당 명령이 있는 셸 내에서) 가져와야 하는 파일처럼 들리므로 다음과 같은 것을 제안 .sh수 있습니다 . , 가능합니까?sourceapplication-name.envprocess-name.env


1 스크립트의 별칭은 나를 약간 짜증나게 합니다. 내가 말했듯이 별칭은 대화형 셸의 편의를 위한 것이므로 항상 플래그 -Fls정의 alias ls='ls -F'등을 추가하고 싶을 수도 있습니다 . 그러나 스크립트에서는 더 자세한 내용을 원할 수도 있습니다. 여기에는 적어도 두 가지 이유가 있습니다(다음은 개인적인 의견입니다).

  1. 말하거나 cp대본 rm으로이렇게 해야 해. 표준 명령은 스크립트의 별칭으로 재정의되어서는 안 됩니다. 그렇지 않으면 디버깅이 매우 까다로워집니다.

  2. 별칭은 대화형 명령줄에서 사용됩니다(속도를 높이거나 손가락과 손을 절약하기 위해 계속해서 입력합니다). 한 번만 스크립트를 작성하고 개선해 보세요. 이를 통해 다른 사람(또는 몇 주 후에는 자신)이 쉽게 읽고 이해할 수 있는 방식으로 스크립트를 작성할 수 있으며, 이는 스크립트를 작성할 때 더 자세히 설명할 수 있다는 의미입니다. 장점은 유지 관리 가능성입니다.

  3. 별칭은 적어도 함수와는 달리 매개변수를 받아들일 수 없습니다. 이렇게 하면 기능이많은별칭보다 더 일반적입니다. 예를 들어 명령에 대한 별칭을 설정하는 대신 유틸리티를 호출하기 전에 매개변수가 올바른지 확인하여 유틸리티를 호출할 뿐만 아니라 결과가 예상대로 반환되는지 확인하는 함수를 생성할 수 있습니다. 원하는 경우 함수는 자체 명령줄 구문 분석을 수행할 수도 있으며 이러한 방식으로 스크립트 내에서 자체 "유틸리티" 역할을 합니다.

나는 많은 사람들이 작업하고 있는 프로젝트를 위해 스크립트를 작성하고 있는데 그것은 업무용이므로 이것이 내 관점입니다.

답변2

차이점은 다른 답변에 설명되어 있습니다. 귀하의 목적에 따라 파일 확장자가rc잘 맞을 것입니다 :

명령 시작 정보가 포함된 모든 파일에 사용됩니다.

<appname>rc, <appname>.rc또는 와 같은 다양한 맛이 있습니다 <appname>-rc. 잘 알려진 예로는 /etc/inputrc, ~/.bashrc및 가 있습니다 ~/.vimrc.

답변3

기술적으로 별칭은 명령 해석기에서 사용되는 정의입니다. 변수 설정과 별칭 설정은 모두 다음과 같은 형식입니다..

별칭을 설정, 쓰기, 설정 해제 및 삭제할 수 있지만 별칭은 전역적이며 값 저장 이외의 다른 작업을 수행하므로 셸의 변수와 의미상 다릅니다.

관련 정보