간단한 명령에 대한 별칭 대 내보내기


33

과 같은 간단한 명령의 less경우 별칭을 만들거나 옵션을 내보내는 것이 더 낫습니까? 다른 것보다 이점이 있습니까?

예를 들어, less항상 -R원시 문자를 표시 하는 옵션을 사용하려면 다음 두 솔루션이 모두 작동합니다.

  1. export LESS='-R'
  2. alias less='less -R'

이와 같은 간단한 경우에는 다른 것보다 이점이 있습니까? 하나는 문제를 일으키고 다른 하나는 문제를 일으키지 않는 시나리오는 무엇입니까?

나는 몇 가지를 읽은 infoman페이지뿐만 아니라 그것을 인터넷 검색,하지만, 난 여전히이에 붙어있어.


1
그것은 실제로 개인 취향에 달려 있습니다. 나는 더 많은 의견에 근거한 것으로 보이기 때문에 이것을 폐쇄하기로 결정했다.
slm

세 가지 추가 솔루션 : 쉘 함수를 작성하십시오 (쉘에서만 작동하지만 대화식 일 필요는 없음). ~ / bin 또는 어디에서나 스크립트 작성 (쉘 시작 오버 헤드가 있지만 쉘 및 다른 프로그램에서 즉시 작동하며 지속적 임); 프로그램 별 구성 파일 (을 less사용하여 수행 할 수 있음 lesskey)
deltab

3
@slm 그것은 의견에 근거한 것이 아니거나 적어도 의도 된 것이 아닙니다. 특히보다 복잡한 시나리오에서 훨씬 더 많은 오버 헤드가 필요하고 불필요하게 리소스를 사용할 수 있습니다. * nix 세계에서는 전통적으로 더 정확하거나 어딘가에 공식적인 표준이있을 수 있습니다. 프로그래머는 모든 의도와 목적을 위해 동일한 목표를 달성 할 때에도 "조잡한 코딩"에 대해 항상 짜증을냅니다.
skittleys

답변:


30

이 둘의 한 가지 차이점은 별칭이 셸 기능 일뿐입니다. 환경 변수는 의도적으로 지워지지 않는 한 모든 하위 프로세스에서 상속됩니다.

환경 변수는 경우에도 작업에 더 가능성이있을 것 less같은 (예를 들어 다른 쉘을 통해 같이 간접적으로 시작됩니다 tcsh), man, vim, psql, 등


3
특히 별칭은 대화식 쉘 에서만 작동 합니다. 쉘 스크립트 에서는 별칭을 사용할 수 없으며 때로는 원할 수도 있습니다. bash -c 'alias ll="ls -l"; ll'별칭을 사용하지 않습니다.
deltab

아, 몰랐어! 따라서 export LESS='-R'내 .zshrc에 있으면 zsh 세션을 연 다음 동일한 세션에서 .bashrc로 내보내기하지 않고 bash로 전환하면 환경 변수가 계속 설정됩니까? 나는 둘 다 잃어 버릴 것이라고 생각했을 것이다 ....
skittleys

@deltab 아, 그래, grep의 채색 문제로 인해 그 차이점에 대해 알고 있습니다. 지적 해 주셔서 감사합니다.
skittleys

1

사용하는 도구에 따라 크게 다릅니다. 둘 중 하나만 사용할 수있는 도구가 있습니다.

다른 사람이 호출하고 환경 변수를 읽고 동일한 스위치를 허용하는 명령이 있지만, 각 스위치에 동일한 스위치를 추가하면 컴파일러와 같이 make환경 변수가 빛납니다. 변수를 설정하고 잊어 버립니다. 또한 시간적 일 수 있고 단일 명령으로 작동 할 수 있다는 장점도 있습니다.

결론은 환경 설정과 작업에 대한 최선의 조치 중 하나입니다. 별칭을 설정하는 것이 환경 변수보다 쉽고 영구적 인 시간과 다른 방법으로 동일한 방식으로 작동하는 도구가 필요한 시간이 있습니다. 환경 변수를 사랑하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.