我正在尝试使用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
答案 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