Linux
[Linux] Bash Shell에 인자 전달하여 실행
Jane Kwon
2022. 3. 4. 18:07
반응형
처음 보는 서버의 conf 파일을 수정 후 누가봐도 서버 실행 스크립트가 있길래 자바 에이전트를 실행하고 로그를 보니
$ ./server-start.sh
nohup: appending output to `nohup.out'
$ tail -f nohup.out
Useing : help, start, stop
help
느낌이 인자값을 디폴트로 help로 받은 모양인데?
쉘 스크립트를 까보니 $@와 $1이 딱 보인다.
$ cat server-start.sh
#! /bin/sh
#JAVA_HOME=/home/maxion/app/jdk1.6.0_17
JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk.x86_64
EXEC_HOME=/home/ec2-user/WhatIsAServer/daemon
DAEMON_NAME=WhatIsAServer
DAEMON_FILE=daemon
EXEC_LIB=$EXEC_HOME/lib
export LANG=ko_KR.EUC_KR
export CLASSPATH=$JAVA_HOME/jre/lib/rt.jar:$EXEC_HOME/classes/.
for i in $EXEC_LIB/*.jar
do
export CLASSPATH=$CLASSPATH:$i
done
for arg in "$@"
do
if [ "$arg" = "start" ]
then
rm -f nohup.out
fi
done
nohup $JAVA_HOME/bin/java -Ddaemon.name=$DAEMON_NAME -Duser.timezone=GMT+09:00 -Ddaemon.file=$DAEMON_FILE shop.janee.main.WhatIsAServer $1&
$1, $2 처럼 뒤에 숫자가 들어가면 인자가 들어오는 순서대로 값을 대체한다.
$@ 처럼 뒤에 골뱅이가 들어가면 들어오는 문자열의 인자값을 대체하며 인자는 공백으로 구분된다.
인자값을 넘겨줄 때는 ./server-start.sh로 실행하면 실행이 안된다. 아래처럼 sh로 실행해야만 인자값을 넘겨서 실행할 수 있다.
$ sh server-start.sh start
nohup: appending output to `nohup.out'
(참고 : https://codechacha.com/ko/shell-script-arguments/)
반응형