我试图用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保持空。在
你的问题是:
sh
不支持数组。或者更改shebang行来调用一个支持数组的shell,比如bash
,或者在like中使用一个普通的、空格分隔的数据文件字符串相关问题 更多 >
编程相关推荐