bash认为变量是命令

时间:2016-05-05 04:30:12

标签: bash unix

我正在尝试获取某些文件的基本名称,并将它们合并到循环中的输出文件中。我正在尝试将基本名称分配给变量“x”和“y”,但不断收到错误“x:command not found”。为什么bash认为'x'和'y'是命令,什么是在输出文件中获取两个文件名(但不是路径或扩展名)的最佳方法?谢谢你的帮助!

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

1 个答案:

答案 0 :(得分:3)

不要在=

周围放置空格

不起作用:

x = $(basename $i)
y = $(basename $j)

工作的:

x=$(basename $i)
y=$(basename $j)