이번 달까지 쉘 구성은 꽤 단순 했지만 (주로 별명 .bashrc
또는 .bash_profile
일부 별칭 사용), 리팩토링하여 zsh 및 bash 사용 여부에 따라 다른 동작을 얻을 수 있습니다. 그들은 먼저 무엇이든 작동하는 일반 쉘 구성 파일을 제공 한 다음 사용중인 특정 쉘을 전문화합니다 (I symlink to this).
나는 일을 ls
그만두 었을 때 오늘 놀랐다 . 리팩토링하는 동안 .bashrc
별칭이 있음이 밝혀졌습니다.
alias ls='ls --color=always'
그 위해 물건을 깨는했다 ls
OSX 터미널에서 떠들썩한 파티에서. BSD ls
가 -G
색상을 좋아 하지만 GNU (또는 Ubuntu에있는 것이 무엇이든) 좋아 --color
한다는 것을 알았을 때, 몇 가지 옵션이 다르다는 것이 분명했습니다.
내 질문은 옵션과 BSD와 GNU coreutils의 차이점을 설명하는 가장 좋은 방법은 무엇입니까? if
사용중인 OS를 확인하고 올바른 동작을 적용하기 위해 블록 에서 env 변수를 테스트해야합니까 ? 아니면 각 OS에 대해 별도의 구성 파일을 만드는 것이 더 합리적입니까?
이러한 질문에 대한 대답은 주관적 일 수 있지만, BSD와 GNU coreutils의 차이점에 대한 요약과 대부분의 * nix에서 일반 구성을 사용할 수 있도록하기 위해이를 해결하는 전략은 상당히 객관적입니다.
ls -c
다릅니다ls --color
. 수정하기 위해 질문을 수정했습니다.