以下代码读取test.txt内容并基于第一个字段将第三个字段重定向到result.txt
src_fld=s1
type=11
Logic_File=`cat /home/script/test.txt`
printf '%s\n' "$Logic_File" |
{
while IFS=',' read -r line
do
fld1=`echo $line | cut -d ',' -f 1`
if [[ $type -eq $fld1 ]];then
query=`echo $line | cut -d ',' -f 3-`
echo $query >> /home/stg/result.txt
fi
done
}
以下是test.txt的内容:
6,STRING TO DECIMAL WITHOUT DEFAULT,cast($src_fld as DECIMAL(15,2) $tgt_fld
7,STRING TO INTERGER WITHOUT DEFAULT,cast($src_fld as integer) $tgt_fld
11,DEFAULT NO RULE,$src_fld
一切正常,但result.txt中的输出是$ src_fld而不是s1。谁能告诉我代码中有什么问题?
答案 0 :(得分:1)
尝试替换以下行
echo $query >> /home/stg/result.txt
这一个
eval "echo $query" >> /home/stg/result.txt