簡體   English   中英

“/ bin / bash -l”無效選項

[英]“/bin/bash -l” Invalid option

好吧,我試圖在我們的超級計算機上運行作為一個工作掩蓋的串行MPI工作。 主提交腳本基本上看起來像這樣:

#!/bin/bash -l
#PBS -l nodes=4:ppn=8,walltime=24:00:00

cat $PBS_NODEFILE | uniq | tr '\\012' ' ' > tmp-$PBS_JOBID
read -a NODE < tmp-$PBS_JOBID
rm tmp-$PBS_JOBID

inode=-1
ijob=0

for ((K=1;K<=8;K++))
do
        [ $((ijob++ % 2)) -eq 0 ] && ((inode++))
        ssh ${NODE[inode]} _somepath_/RUN$K/sub.script &
done
wait
exit 0

每個sub.script看起來像:

#!/bin/bash -l
#PBS -l walltime=24:00:00,nodes=1:ppn=4

module load intel
module load ompi
export FORT_BUFFERED=1

*run executable* 

wait
exit 0

有時我會遇到每個sub.script的錯誤(作業立即死亡):

/bin/bash: -
: invalid option
Usage:  /bin/bash [GNU long option] [option] ...
        /bin/bash [GNU long option] [option] script-file ...
*etc.*

最有趣的是它是一個隨機錯誤意味着如果我在第二個(或第三個等)時間運行相同的腳本它將運行沒有任何問題。 有時我很幸運,有時我不是......刪除-l將無濟於事,因為在這種情況下模塊無法加載,mpirun將無法正常工作。 任何建議如何解決?

非常感謝提前!

您的腳本可能包含您無法看到的字符。 也許是使用錯誤的字符集翻譯進行復制/粘貼或者是DOS格式。 對於后者,您可以使用tofrodos或dos2unix包進行更正。

在任何一種情況下,你都可以在'vi'或其他應用程序中提取它,這些應用程序通常會顯示奇怪的字符,如^ @或^ M. 你可以試試cat -v filename ,這可能有助於看到這些奇怪的東西。 推動嘗試hexdump(或高清,或od)。

我剛遇到這個,我的行結尾無效。 我從CRLF改為LF並修復了它!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM