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


33

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

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

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

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

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


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.