我正在尝试读取一个文本文件(包含一组指令)
#!/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 在 while 无限循环中运行,我等不及控制权返回
请帮忙!!!
已经尝试过 如何在 shell 脚本中运行 shell 脚本 和其他可用的解决方案,仍然不起作用