【问题标题】:Needs help on variable substitution in shell [duplicate]在shell中需要变量替换的帮助[重复]
【发布时间】:2020-08-17 00:21:16
【问题描述】:

我正在从 databse.prop 文件中读取数据库属性,下面是代码。

....
 for (( i=1;i<=$Dbcount;i++ ))
                        do
echo "$DBCONNECTIONNAME_${i}"                 
sqlplus -S ${user1}@$DBconnection_${i}/${Password} <<EOF &
spool sqlcsvdb_"$i".csv
                         @squery.sql $para1 $para2
                          exit
EOF
done

属性文件。 ....

 DBcount=2
    user1=user
    Password=password
    DBconnection1=Connection1
    DBconnection2=Connection2

..... 我将 $DBconection_$i 变量输出为 1、2 为循环,并将错误消息作为错误替换,请帮助我。

【问题讨论】:

标签: bash shell unix oracle-sqldeveloper


【解决方案1】:

source "properties file" 之后你有你想要的变量,你可以做

for ((i=1;i<=DBcount;i++)); do
   conn=DBconnection${i} # you need an extra var
   echo "${!conn}"
done

另一种可能性是在循环中获取值:

for ((i=1;i<=$Dbcount;i++ )); do
   conn=$(sed -n "/DBconnection${i}=/ s/.*=//p" "properties file")
   echo "${conn}"
   sqlplus -S ${user1}@${conn}/${Password} <<EOF &
spool sqlcsvdb_"$i".csv
@squery.sql $para1 $para2
exit
EOF
done

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-03-08
  • 2014-03-09
  • 2018-12-13
  • 2018-09-24
  • 2017-08-31
  • 2016-01-29
  • 1970-01-01
  • 2020-12-12
相关资源
最近更新 更多