-1

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

4

1 回答 1

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
于 2012-06-26T07:34:40.313 回答