Linux/Shell script
linux JAVA 설치 방법 및 Shell script + if문
개폰지밥
2021. 9. 3. 11:37
반응형
l 자바 설치 방법
(자바 설치 스크립트도 아래에 만들어 놓긴했습니다 😊)
자바 설치 확인
- 첫번째 javac 이용
[fido@localhost script]$ javac -version
-bash: javac: command not found
- 두번째 rpm 이용
[fido@localhost script]$ rpm -qa | grep jdk
설치 가능한 java list 확인
[fido@localhost script]$ yum list java*jdk-devel
자바 설치
[fido@localhost script]$ yum install -y java-1.8.0-openjdk-devel.x86_64
You need to be root to perform this command.
root로 변경 후 설치
[root@localhost script]# yum install -y java-1.8.0-openjdk-devel.x86_64
자바 설치 확인
[root@localhost script]# javac -version
[root@localhost script]# rpm -qa java*jdk-devel
환경변수 설정
[root@localhost java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64]# pwd
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64
JAVA 환경변수 적용
vi /etc/profile
source /etc/profile
적용확인
echo $JAVA_HOME
자바 설치 스크립트
vi 2_java_install.sh | |
구현하고 싶은 내용 | 구현 아이디어 내기 |
JAVA 설치 | JAVA 설치 확인 후 JAVA 설치 설치하고 싶은 버전 받아오기 설치 후 /etc/profile에 PATH도 자동 추가 |
쉘 스크립트 내용 | |
#!/bin/bash #install_check rpm -qa | grep jdk >> result.txt FILE="result.txt" if [ -s $FILE ]; then echo "you already installed java" else echo "start to install javal" yum list java*jdk-devel echo -n "Enter wanna install java version: " read JAVA_VERSION yum install -y $JAVA_VERSION javac -version fi |
|
결과 | |
[설치되어있을 때 결과값] [root@localhost script]# ./2_java_install.sh you already installed java [root@localhost script]# ls 1_user_folder_create.sh 2_java_install.sh result.txt |
[설치되어있을 때 결과값] |
기타사항 | |
설치 후 /etc/profile에 PATH 자동 추가 구현해야함. |
쉘 스크립트 문법
조건문
test문은 쉘 스크립트에서 조건문을 검사하고 결과를 반환하는데 사용됩니다.
일반적으로 if문이나 while 문을 이용하여 문자열비교, 산술비교, 파일 비교 등을 수행합니다.
test문의 사용법은 다음과 같습니다.
test expression 또는 expression |
조건의 결과가 참(true)인 경우는 0을, 거짓(false)인 경우는 0이 아닌 값(통상 1)을 반환합니다.
문자열 검사
비교 | 설명 |
str1 = str2 | 문자열이 같으면 true, 틀리면 false 반환 (연산자 사이에 공백문자가 있어야 함) |
str1! = str2 | 문자열이 다르면 true, 같으면 false 반환 (연산자 사이에 공백문자가 있어야 함) |
str | 문자열 길이가 0이 아니면 true, 0이면 false 반환 |
-n str | 문자열 길이가 0이 아니면 true, 0이면 false 반환 |
-z str | 묹열 길이가 0이면 true, 0이 아니면 false 반환 |
산술 비교
비교 | 설명 | 비고 |
A -eq B | A와 B값이 같으면 true 반환 | equl then |
A -ne B | A와 b값이 다르면 true를 반환 | No equal to |
A -gt B | A가 B보다 크면 true를 반환 | Greater than |
A -ge B | A가 B보다 크거나 같으면 true를 반환 | Greater than or equal to |
A -lt B | A가 B보다 작으면 true를 반환 | Less than |
A -le B | A가 B보다 작거나 같으면 true를 반환 | Less than or equal to |
ð 모든 연산자는 조건식 좌우 사이에 공백문자가 있어야 합니다.
파일 검사
검사 | 결과 |
-d file | 디렉토리파일이면 true 반환 |
-f file | 일반파일이면 true 반환 |
등등 생략
논리 조건 연산
논리 연산자 | 설명 |
! | Not 연산자 : 결과에 대해 반대값을 반환 |
-a | And 연산자 : 결과가 모두 참이어야 true를 반환 |
-o | Or 연산자: 결과가 하나라도 참이면 true를 반환 |
() | 우선순위 연산 |
l If~then~fi 문
조건이 참인 경우에만 실행되는 구문
if 조건 then 명령1 fi |
l If~then~else~fi 문
만약 ~라면 ~이고, 아니라면 ~입니다와 같이 결과 출력
if 조건 then 명령1 else 명령2 fi |
l if~then~elif~else 문
여러 가지 조건을 처리하기 위한 구문.
if 조건 then 명령1 elif 조건 then 명령2 …. else 명령3 fi |
예시
#!/bin/bash female=30 male=20 if [ $male -lt $female ] then echo female elif [ $male -eq $female ] then echo same else |
결과
[fido@localhost script]$ ./if_test.sh
female
에러
[fido@localhost script]$ ./if_test.sh
./if_test.sh: line 4: [: missing `]'
./if_test.sh: line 7: [20: command not found
male
-> 띄어쓰기를 꼭 해야한다.
l read
read 명령어를 사용하면 쉘 스크립트가 키보드에서 입력된 값을 얻을 수 있다.
반응형