2012-06-26 76 views
-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 

+0

是你最後嘗試換行嗎? –

+0

不,我會試試看,並告訴你它是否有效。 – Grieverheart

+0

這工作Ignacio,謝謝。你能在答案部分回覆,所以我標記答案?同樣由於某種原因,在最後添加一個新行並沒有在輸出腳本本身中給我一個可見的新行。 – Grieverheart

回答

1

必須將可執行位設置爲你的腳本:

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

可以肯定,這是不是一個formting問題(或任何與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 
+0

我曾試過,但沒有改變任何東西。只有在gedit下才能保存它。 – Grieverheart

+0

你能檢查所有的權限嗎? –

+0

我實際上使用了chmod 755 – Grieverheart

相關問題