[英]“/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.