私はbashスクリプトを書いて、次のメッセージを受け取りました:
/home/myname/documents/myscripts/run_tearingmode.sh: 44 行目: mpirun2: コマンドが見つかりません:
ここで、スクリプトの関連部分
if [[ "$run_jobs" == "y" ]]
then
printf "The jobs run one after the other. Have fun with the analysis. \n "
for ((i=1;i<=$number_subfolders;i++))
do
sub_folder=${main_folder}_$i
cd
cd gkw/run/${main_folder}/$sub_folder #change into certain subfold
pwd
mpirun2 -np 8 ./gkw_btppx-gnu-DP_3481.x #run on all 8 frames #line 44 Here is the problem
cd
done
fi
私の問題は、特定のフォルダーにコマンドとして行を入力すると、プログラムが正しく実行されることです。これは、私が正しく実装したことを示しています。pwd を使用すると、正しいフォルダーにいることもわかります。どこでミスをしたのかわかりませんでした。プログラムを実行するために、スクリプトに特定のブラケットまたは同等のものが必要ですか? コマンドの前の空白も削除しましたが、何も変わりませんでした。何が間違っていますか?
編集: 問題は、そのようなスクリプトで bashrc からエイリアスを実行できないことでした。だから私は追加しました:
mpirun2='/Path/to/mpirun'
スクリプトに追加し、スクリプト内のコマンドを次のように変更しました。
"$mpirun2" -np 8 ./gkw_btppx-gnu-DP_3481.x #run on all 8 frames
これは機能します。どうもありがとう。(残念ながら、この回答をスターターとして自分で書くことはできません:))