기타
[Ubuntu] zsh Shell Script
헤르메스의날개
2024. 2. 9. 01:19
728x90
1. echo ( 출력 )
#! /bin/zsh
echo "Hello World!"
2. 변수 Assign ( 할당 )
#! /bin/zsh
A=1 # ok
B = 2 # 공백이 있으면 안되요.
3. 변수 출력
A=1
B="문자"
C=`ls -al`
echo $A
echo $B
echo $C
Java PID 를 확인하고 있으면 kill 하고 띄우고, 없으면 그냥 띄우는 Script
#!/bin/zsh
#!/bin/bash
# java -jar api-gateway.jar -p 8081
# export JAVA_HOME=/home/jypark/.sdkman/candidates/java/current
# export PATH=$PATH:$JAVA_HOME/bin
# 실행할 JAR 파일의 경로
JAR_FILE="api-gateway.jar"
# 실행할 포트 번호
PORT=8081
# JAR 파일이 이미 실행 중인지 확인
# lsof : macOS에서 사용하는 명령어.
# PID=$(lsof -ti :$PORT)
# netstat :: 보안 및 호환성 문제로 인해 최신 시스템에서는 더 이상 사용되지 않을 수 있음.
# PID=$(netstat -tlnp | grep ":$PORT" | awk '{print $7}' | cut -d'/' -f1)
# ss :: Socket Statistics
# PID=$(ss -tlnp | grep ":8081" | awk '{print $6}' | cut -d',' -f2)
PID=$(ss -tlnp | grep ":$PORT" | awk '{print $6}' | cut -d',' -f2)
PID=$(echo $PID | awk -F'=' '{print $2}')
# -z :: 변수가 null 이면
# if [[ -z $PID ]]; then
if [ -n $PID ]; then
# echo "포트 $PORT에서 실행 중인 $JAR_FILE를 찾을 수 없습니다. 새로운 프로세스를 시작합니다."
# java -jar $JAR_FILE -p $PORT &
#else
echo "포트 $PORT에서 이미 실행 중인 $JAR_FILE를 찾았습니다. 프로세스를 중지하고 새로운 프로세스를 시작합니다."
kill -9 $PID
# java -jar $JAR_FILE -p $PORT &
fi
echo "새로운 프로세스를 시작합니다."
java -jar $JAR_FILE -p $PORT &
실행 시키다 아래와 같은 오류가 발생했습니다.
Syntax error: end of file unexpected (expecting "then")
아무리 봐도 then 은 존재하는데.. then 없다고 ㅜ.ㅜ
원인은 Windows 에서 사용하던 bat 파일을 복사해서, 수정하던 파일이였습니다.
Windows 파일과 Linux 파일에 타입이 달라서 인지, 인식을 못하네요.
파일 삭제하고, 다시 생성했더니 잘됩니다.
728x90