shell中for循环变量常见使用场景
1 目的
在shell脚本for循环使用过程中经常出现非常规使用场景,如在awk的条件语句中、输出文本中变量后有字符等,这些场景中需要对for循环中的变量做处理。希望持续完善
2不同场景
2.1 变量在awk内部
变量在awk条件语句内部,用'$i'
for ((i = 1; i <= 22; i++))
do
cat ../../a.txt |awk '{if($5=='$i') print}' > a.top
done
2.2 变量后有字符
for ((i = 1; i <= 22; i++))
do
cat ../../a.txt |awk '{if($5=='$i') print}' > a.$i\top
done
# 或者
for ((i = 1; i <= 22; i++))
do
cat ../../a.txt |awk '{if($5=='$i') print}' > a.${i}_top
done
2.3 变量为字符
chr_list="chr1 chr2 chr3 chr4 chr5 chr6 chr7 chr8 chr9 chr10 chr11 chr12 chr13 chr14 chr15 chr16 chr17 chr18 chr19 chr20 chr21 chr22 chrX chrY chrM"
for i in $chr_list
do
cat ${output_dir}tibetan.fpkm.bed|awk '{if($1=="'${i}'") print}' > ${output_dir}${i}.fpkm.bed
done