shell脚本无法与nohup一起使用

2024-05-15 10:59:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用nohup命令运行shell脚本。shell脚本获取一个文件数组,在循环中对每个文件运行python程序,并将输出附加到文件中。这在服务器上运行得很好,但是如果我试图使用nohup命令,它就不起作用了。我已经成功地在这个服务器上使用nohup运行了其他程序,只是没有运行这个脚本。在

#!/bin/sh
ARRAY=(0010.dat 0020.dat 0030.dat)

rm batch_results.dat
touch batch0.dat
touch batch_results.dat

for file in ${ARRAY[@]}
do
python fof.py $file > /dev/null
python mdisk5.py > ./batch0.dat
tail -1 batch0.dat
tail -1 batch0.dat >> batch_results.dat
done

例如,当我在与服务器保持连接的情况下运行该程序时,它工作得很好

^{pr2}$

但是,当我试图用nohup命令运行它时

nohup ./batch.sh > /dev/null &

如果我退出服务器并返回输出文件(批处理_结果.dat)没有任何数据。在

我肯定是在这里的一些简单的命令。有什么想法吗?在

编辑: 程序fof.py公司生成两个用作mdisk5.py输入的文件。 当我在运行nohup时退出服务器时,会生成这两个文件,但只针对第一个输入文件“0010.dat”。输出文件batch0.dat和batch_结果.dat保持空。在


Tags: 文件py命令程序服务器脚本shbatch
1条回答
网友
1楼 · 发布于 2024-05-15 10:59:59

你的问题是:

#!/bin/sh

sh不支持数组。或者更改shebang行来调用一个支持数组的shell,比如bash,或者在like中使用一个普通的、空格分隔的数据文件字符串

   DAT_FILES="0010.dat 0020.dat 0030.dat"
   for file in $DAT_FILES
   do
       ...
   done

相关问题 更多 >