다른 HPC 노드, VM 또는 개인 워크 스테이션에서 다른 버전의 Bash를 실행할 수있는 비교적 이기종 환경에서 작업합니다. 로그인 스크립트를 Git 리포지토리에 넣었 기 때문에 .bashrc
"이 호스트라면 ..."형식의 혼잡함없이 보드 전체에서 동일한 (ish) 을 사용하고 싶습니다 .
나는 같은 배쉬 ≤ 확장 4.1의 기본 동작 cd $SOMEPATH
에 cd /the/actual/path
가압 할 때 Tab키를 누릅니다. 배쉬 4.2 이상, 당신이해야 shopt -s direxpand
하는이 동작을 다시 설정하고, 그 사용할 수있게하지 않았다 4.2.29까지 . 그러나 이것은 하나의 예일뿐입니다. 또 다른 관련 shopt
옵션은 complete_fullquote
(내가 정확히 무엇인지 모르지만 ) v4.2의 기본 동작을 변경했을 수도 있습니다.
그러나 direxpand
이전 버전의 Bash에서는 인식하지 못하며 shopt -s direxpand
my에서 시도 .bashrc
하면 이전 Bash가있는 노드에 로그인 할 때마다 오류 메시지가 콘솔에 인쇄됩니다.
-bash: shopt: direxpand: invalid shell option name
내가하고 싶은 것은 shop -s direxpand
이전 버전의 Bash를 손상시키지 않고 ( 즉 , 오류 출력을로 리디렉션하는 것이 아니라) Bash> 4.1에서 해당 옵션을 강력한 방법으로 사용하도록 조건부를 감싸는 것 /dev/null
입니다.
.bashrc
입니다. 나는 아직도 $BASH_VERSINFO
내 자신의 교화를 위해 실행중인 쉘의 메이저 / 마이너 버전을 조사 하는 데 사용하는 방법에 대한 기록을 원했다 . :)