私は初めてbashスクリプトに触れました。別のディレクトリにいくつかのファイルがあり、ファイル名またはディレクトリ名の一部を抽出し、その部分で変数を作成し、その変数を別のコマンドに適用しようとします。私のディレクトリとファイル名は次のパターンに従います。
user/Sample_001_002_5/001_002_5_fgdfgh_hgf00.gz
user/Sample_254_128_3/254_128_3_wserer_hgf00.gz
変数の設定方法がわかりますか? i=001_002_5 i=254_128_3 次のスクリプトを作成しましたが、コマンドで認識されません。
dir=/users/Sample_*
for DIR in $dir
do i= basename ${DIR} | cut -c 8-
R="${DIR}/${i}*.gz" # Run correctly#
echo $i # run correctly#
echo $R # run correctly#
echo '@RG\tID:MCW\tSM:'${i}'\tPL:Illumina\tPU:'${i}" ### in this command i is not recognized######
done
答え1
これが問題の原因であるかどうかはわかりませんが、問題の行末の二重引用符が一致しません。
(また、echoは、必要に応じて\ tをリテラルではなくタブとして扱うために「-e」引数を取る必要があります。私はこれが$ iとは関係がないことを知っています。)