0

パスについて 2 つの質問があります。

最初の質問は「qsub」に関連しています

これは私の現在のフォルダです

/home/mtrnn/rnn_class_EE837/src/rnn-learn/result/lissa_1_rec/

私が使用するこのフォルダに

qsub -q public_~~~ ./start.sh

それはうまくいきます。問題は、サーバーを使用するたびに、以下のシェル スクリプト (start.sh) でパスを変更する必要があることです。別のフォルダーで使用する場合、start.sh のコードの下に変更する必要があるたびに

cd current_path

例えば、

cd /home/mtrnn/rnn_class_EE837/src/rnn-learn/result/lissa_1_rec/

面倒くさいし、よくパスエラーになる。

削除できますか

cd ~~~~ 

「pwd」などを使用して?

つまり、「pwd」を使用して現在のパスを読み取り、この結果を変数としてシェルスクリプトに入れます。可能ですか?「pwd」の結果を変数として取得し、それをstart.shの変数に入れることができれば、その部分を削除できると思います。しかし、私はそれを行う方法はありません。

これはstart.shです

#!/bin/sh

cd /home/mtrnn/rnn_class_EE837/src/rnn-learn/result/lissa_1_rec/

   if [ "$1" = clean ]; then
   rm -f *.log *.dat target.txt *.scale *.restore
   exit
fi

config_file=test_config.txt
connection_file=connection.txt
if [ -f $connection_file ]; then
    cp $config_file ."$config_file".tmp
    gen_config.sh $connection_file >> ."$config_file".tmp
else
    cp $config_file ."$config_file".tmp
fi

../../rnn-learn -i rnn.dat -c ."$config_file".tmp ./target*.txt

#${path2}rnn-generate -n 2000 rnn.dat > orbit.log

rm ."$config_file".tmp

2番目の質問は、

#${path2}rnn-generate -n 2000 rnn.dat > orbit.log

上記のコードでは、 ${path2} があります

start.sh の場合、 ${path2} は常に rnn-generate があるフォルダーを指していると思います。

どのようにできるのか?やり方がわかれば変えたい

../../rnn-learn -i rnn.dat -c ."$config_file".tmp ./target*.txt

${path3}rnn-learn ~~~

ああ、今私はサーバーを使用していて、大臣ではありません。

したがって、/etc/bashrc または /etc/environment を変更することはできないと思います。

ありがとうございました。

4

1 に答える 1