Red Hat Enterprise Linux 5에서 RHEL 6으로 머신을 천천히 전환하는 환경에서 일하고 있습니다.
RHEL6 컴퓨터에서 현재 RHEL5 컴퓨터에서 수행중인 작업과 미묘하게 다른 작업을 수행하려면 일부 스크립트가 필요합니다.
실용적인 솔루션은 런타임에 검사하고 RHEL5에서 일부 명령을 실행하고 다른 명령을 RHEL6에서 실행하고 일부는 둘 다 실행하는 것입니다.
이에 대한 실제 예는 환경 모듈과 내 .bashrc포함 module load git라인을 사용하고 있지만 RHEL6 시스템에서이 명령 오류는 다음과 같습니다.
RHEL6 system, git should be installed - not loading module
모듈 파일을 보면 다음 코드가 있습니다.
set redhatrelease [eval exec "cat /etc/redhat-release"]
if { [regexp -nocase {release 6} $redhatrelease] } {
puts stderr "\n\t RHEL6 system, git should be installed - not loading module\n"
} else {
...
}
이것은 내가 원하는 것을하는 것처럼 보이지만 더 짧은 것을 원했습니다.
그렇다면 bash 스크립트로 RHEL6에서 RHEL5에게 가장 쉬운 방법은 무엇입니까?
이상적으로는 여러 주요 버전에서 강력해야하지만 마이너 릴리스 번호의 변형에 견딜 수 있어야합니다.
gitBash 모듈이 필요한 경우 호출하기 전에 Bash 모듈이 있는지 확인하십시오. 나중에 표시되면 수표 결과가 변경되므로 추가 노력없이 갑자기 기능이 작동하기 시작합니다.
lsb_release -r는 다른 텍스트도 포함합니다 (예 :) Release: 5.8. 그러나 Dennis Kaarsemaker가 설명 하듯이 lsb_release -rs대신 사용 하면 숫자 만 얻을 수 있습니다.
lsb_release일을? (-r숫자 만 제시해야하며-a가능한 모든 것을 보려고 노력 하십시오) 그렇다면 공급 업체도 마찬가지입니다.