일련의 지침이 포함된 텍스트 파일을 읽으려고 합니다.
#!/bin/ksh
INPUT=input.txt
OLDIFS=$IFS
while IFS='~' read -r ACTIVE process_name PATH STOP START DB
do
if [ $ACTIVE == 'Y' ]; then
echo "IS ACTIVE? : $ACTIVE "
echo "PROCESS NAME : $process_name"
echo "PATH1 : $PATH"
echo "STOP_SCRIPT : $STOP"
echo "START_SCRIPT : $START"
echo "DB_QUERY : $DB"
echo "*****************************************************"
echo "starting $process_name"
cd $PATH
$START
fi
done < $INPUT
IFS=$OLDIFS
input.txt의 예시 지침은 다음과 같습니다.
Y~ABC~/path/to/dir/work/~kill~nohup ABC.ksh >nohup.out 2>&1 &~~
위 스크립트는 중지 스크립트를 다음과 같이 읽습니다.
nohup ABC.ksh >nohup.out 2>&1 &
하지만 ./test.ksh를 실행하면
프롬프트가 반환되지 않고 계속 켜져 있습니다.
/path2/to/dir/> Sending nohup output to nohup.out.
/path2/to/dir/>
스크립트에 "nohup ABC.ksh >nohup.out 2>&1 &"를 하드코딩하면 정상적으로 실행됩니다.
나는
nohup ABC.ksh >nohup.out 2>&1 & nohup ABC.ksh &를 시도했습니다.
그러나 ABC.KSH는 무한 루프에서 실행되고 제어가 반환될 때까지 기다릴 수 없기 때문에 작동하지 않습니다.
도와주세요! ! !
이미 시도했습니다 쉘 스크립트에서 쉘 스크립트를 실행하는 방법 및 기타 사용 가능한 솔루션이 여전히 작동하지 않습니다