使用脚本在服务器上执行多个作业

时间:2012-06-26 07:11:21

标签: bash shell unix jobs

我正在尝试使用qsub命令自动将多个作业发送到服务器。我创建了一个shell脚本,它使用printf基于某些输入文件创建多个批处理脚本。问题是这些工作没有运行。当我使用gedit打开从我的shell脚本创建的这些批处理脚本并保存它们而不修改它们时,它们就可以工作了。这让我觉得这是一种格式问题。

你能帮我解决这个问题吗?

这是创建要提交的脚本的shell脚本:


#!/bin/sh
cd /home/PATH/

FILES=$(ls inpt/ | grep "centers")
i=1
declare -i i
for f in $FILES
do
    printf "#!/bin/bash\ncd /home/PATH/\n./nvt inpt/%b" "$f" > run-script$i.sh
    i=$i+1
done

1 个答案:

答案 0 :(得分:1)

您必须将可执行位设置为脚本:

printf "#!/bin/bash\ncd /home/PATH/\n./nvt inpt/%b" "$f" > run-script$i.sh
chmod +x run-script$i.sh

要确保这不是制作问题(或printf的任何问题),您可以尝试使用echo

echo '#!/bin/bash' > run-script$i.sh
echo cd /home/PATH/ >> run-script$i.sh
echo ./nvt "inpt/$f" >> run-script$i.sh