헤르메스 LIFE

[Ubuntu] zsh Shell Script 본문

기타

[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