私はいくつかのファイルのbasenameを取得し、それらをループ内で出力ファイルに結合しようとしています。変数 'x'と 'y'に基底名を代入しようとしていますが、エラー "x:command not found"が表示され続けます。なぜbashは 'x'と 'y'がコマンドだと思うのですが、出力ファイルに両方のファイル名(パスや拡張子は含まない)を得る最良の方法は何ですか?助けてくれてありがとう!bashは変数がコマンドだと思っています
for i in ~/SOSP/pops/*.txt
do
x = $(basename $i)
for j in ~/SOSP/pops/*.txt
do
y = $(basename $j)
vcftools --vcf ~/SOSP/sosp.vcf --weir-fst-pop $i --weir-fst-pop $j --out ~/SOSP/fst_pairs/${x}_vs_${y}.txt
done
done
POSIXのようなシェル変数の代入で、 '='の周りに空白を入れてはいけません。 [shellcheck.net](http://shellcheck.net)はこのようなエラーをキャッチします。 – mklement0