bash:bash:不良数组下标


 table_list=`grep t_ sql.out | awk '{print $1}'`
 echo $table_list
 #t_acct_adj t_assc_fop t_cpn_dup_use t_cpn_upfront_pexp
 
 for table in "${table_list[@]}"
 do
     echo $table
 done   

预期结果:

t_acct_adj

t_assc_fop

t_cpn_dup_use

t_cpn_upfront_pexp

实际结果:

不良数组下标

将结果存储到数组中,您需要使用var=( values )语法,或者在这种情况下,var=( $(command output) )

table_list=($(grep t_ sql.out | awk '{print $1}'))

您也可以使用awk制作此grep | awk。为此,检查Anubhava的答案。

示例

$ cat a
hello
bye
hello2
$ values=($(grep hello a))
$ for v in "${values[@]}"; do echo "$value"; echo "aa"; done
hello
aa
hello2
aa

您可以用此行尴尬替换所有脚本:

awk '/t_/ {print $1}' sql.out

相关内容

  • 没有找到相关文章

最新更新