プログラムを実行するために使用するいくつかのパラメータを記録するbash_profileに関数を書きたいと思います。問題は、私は変数にパラメータを格納すると、私は私のプログラムを呼び出すときにエラーが発生します。この文句を言わないながらbashプログラムを呼び出すときに変数に変数を格納していない
Command line argument error: Argument "query". File is not accessible: `~/path/to/file/abc'
:テストのためのUbuntu 16.04 LTSにbash test.sh
を呼び出すことによって実行さ
#!/bin/bash
/home/xyz/blastn -db ~/Desktop/search_for_TDS/claClusterSeq -query ~/path/to/file/abc -out ~/Desktop/hallo_blast123
回とも
#!/bin/bash
para="-db ~/Desktop/search_for_TDS/claClusterSeq -query ~/path/to/file/abc -out ~/Desktop/hallo_blast123"
/home/xyz/blastn $para
これはエラーを生成します。
-out $PWD/"$1"_"$4"_ws_"$3"_eval_"$5"_Result_"$DATE"_table
I:
blastv25table(){
if [[ ! $# = 5 ]]; then
echo "Param: query db wordSize task evalue"
else
#== Parameters ==
DATE=$(date -I)
para="-num_threads 8
-query $1
-db $2
-outfmt 6
-task $4
-word_size $3
-out $PWD/"$1"_"$4"_ws_"$3"_eval_"$5"_Result_"$DATE"_table
-evalue $5
"
#== Parameter logfile ==
log="./blast_param.log"
echo -e 'Timestamp\t: '$(date)'\nQuery file\t: '$1'\nDB file\t\t: '$2'\nParameters\t: '$para'\nBlastn\t\t: v2.5\n\n##---------------------------##\n' >> $log
#======= Start Blastn ======
/home/xyz/blastn $para
fi
}
私のテストの最初のリードがによって引き起こされたことを示すエラー:ここでは
が、これは関心がある場合、私は私のbash_profileにしたい、実際の関数でありますblastnの出力パラメータで使用するためにスクリプトが呼び出された場所のディレクトリを使用したい
ありがとうございました。これは、これと少しのエラーがあって、 '-out'行が修正されました。 '' $ PWD/$ {{}} _ $ {4} _ws _ $ {3} _eval _ $ {5} _Result _ $ {date} _table ''ファイルをどこか遠くに供給すれば、パスを削除するbasenameコマンド – voiDnyx