我不知道你是否可以帮助我......我对以下代码有疑问:
#!/bin/bash
if [ $# = 0 ]; then
awk '{for (x=5; x<=NF; x++) {printf "%s ", $x } printf "\n" }' affy.txt
else
columns=""
for i in $@; do
if [ $i = "-g" ]; then
word=$2
is_there_g="True"
break
else
is_there_g="False"
fi
columns+="$i,"
shift
done
columns=${columns%,}
if [ $is_there_g="False" ]; then
cat affy.txt | cut -d" " -f$columns
else
grep $word affy.txt | cut -d" " -f$columns
fi
fi
echo $is_there_g
所以,获得我想要的结果是有问题的。这是关于最后一个 If/else 的写法。
什么时候$is_there_g="False"
,我想这样做:"cat affy.txt | cut -d" " -f$columns"
。
如果是True
,那么:"grep $word affy.txt | cut -d" " -f$columns"
。
"echo $is_there_g"
我在代码末尾使用它来评估它。
所以问题是我获得的结果总是针对 False 案例"echo $is_there_g" gives me a True value
。为什么???