우분투에서 나는 좋아한다
shopt -s autocd
내 .bashrc
파일에서 "cd"를 입력하여 자동 CD를 생성합니다. 즉, 디렉터리 이름을 입력한 다음(탭 완성 기능도 사용할 수 있음) Enter 키를 누르고 해당 디렉터리가 있으면 cd를 누릅니다.
OSX에서는 이것이 내 시스템에서 작동하지 않습니다.bashrc
이것에 "의존"하려면 어떻게 해야 합니까? 그러면 두 운영 체제 간에 .bashrc를 공유하고 유지할 수 있습니까?
나는 파일에 대해 다음과 같은 작업을 수행할 수 있다는 것을 알고 있습니다.
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
tmux와 같은 화면 종속 애플리케이션의 경우 할 수 있습니다
if [[ ! $TERM =~ screen ]]; then
if [ -n "$(type -P tmux)" ]; then
exec tmux
fi
fi
그런데 내가 이걸 할 수 있을까? 내가 할 수 있을까 shopt -s autocd
?
답변1
autocd
배쉬에 도입됨버전 4. 따라서 범용 크로스 플랫폼 솔루션은 다음과 같아야 합니다.
[ "${BASH_VERSINFO[0]}" -ge 4 ] && shopt -s autocd
${BASH_VERSINFO[0]}
bash의 주요 버전입니다. 필요한 경우 부 버전을 사용할 수 있습니다 ${BASH_VERSINFO[1]}
. man bash
자세한 내용은 참고자료를 참조하십시오 BASH_VERSINFO
.
답변2
그렇게 간단해요
shopt -s autocd 2>/dev/null
값을 변경하지 않고 옵션을 사용할 수 있는지 확인하려면 또는 shopt
없이 호출하세요 .-s
-u
if shopt autocd >/dev/null 2>/dev/null; then …
답변3
쉬운 방법은 운영 체제 이름을 확인하고 그에 따라 조치하는 것입니다. uname
OSX에서 무엇이 반환될지는 모르겠지만 아마도 다를 것입니다. 따라서 다음을 수행할 수 있습니다.
[[ $(uname) = Linux ]] && shopt -s autocd
즉, 이 작업을 꼭 수행해야 합니까? OSX는 기본적으로 로그인 셸을 실행하며 이를 얻기 위해 ~/.bashrc
수정하지 않는 한 ~/.profile
무시됩니다 . 따라서 그 안에 뭔가가 있으면 ~/.bashrc
어쨌든 Linux에서만 실행됩니다.