일부 시스템 정보를 수집해야 합니다.리눅스일부 배포판/버전별 조건에 따라 수행할 작업을 결정합니다.
예를 단순화하기 위해 가상의 함수를 만들었습니다 my_function_display_operating_system
. 이것은 쓸모없는 기능이지만 문제를 해결합니다.
3.
내가 가장 도움이 필요한 곳에 초점을 맞 춥니다.
호스트를 나타내는 문자열을 읽는 안정적인 방법이 있습니까?리눅스배포판 이름?
/etc/issue
나는 이 정보를 얻을 수 있는 다른 방법이나 일련의 방법을 모르기 때문에 아래 예를 사용하고 있습니다.
하나 있어서 다행이에요때에 따라 다르지case
esac
답변, 필요한 경우 매우 복잡한 스위치 문을 작성할 수 있습니다.
어디를 봐야 할지 알아야 하는데, "둘러보기" 및/또는 내가 알고 있는 모든 배포판에 대한 가상 머신을 다운로드/설치할 수 없습니다.grep이름 때문에...
# Displays operating system.
function my_function_display_operating_system() {
local operating_system
case $my_global_os_type in
OSX)
printf -v operating_system \
'OS X v%s (build %s)' \
$(sw_vers -productVersion) \
$(sw_vers -buildVersion)
;;
Linux)
local -r linux_kernel_version=$(uname -r)
printf -v operating_system \
'GNU/Linux (kernel %s)' \
"$linux_kernel_version"
if [[ -f /etc/issue ]]; then
local -r distribution=$(cat /etc/issue | sed 's/ \\n \\l//g')
operating_system+="\nDistribution: $distribution"
fi
;;
*)
operating_system=Unknown
;;
esac
printf "Operating system: $operating_system\n"
}
예제 출력:
> my_function_display_system_information
Operating system GNU/Linux (kernel 3.5.0-25-generic)
Distribution Ubuntu 12.10
System memory 1 GB
Bash v4.2.37(1)-release
Vim VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Oct 26 2012 16 45 54)
# ... etc ...
답변1
매우 유사한 조언이 여기에 제공됩니다.
https://superuser.com/questions/11008/how-do-i-find-out-what-version-of-linux-im-running
짧은 답변:
ls /etc/*{release,version}
다양한 배포판은 다양한 형식으로 출력되며 안타깝게도 단일 통합 시스템은 없습니다. 위의 답변에는 가장 일반적인 파일 중 일부가 더 자세히 나열되어 있습니다.