Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为for循环中的每个迭代分配新的bash变量_Bash_Loops_Variables_For Loop - Fatal编程技术网

为for循环中的每个迭代分配新的bash变量

为for循环中的每个迭代分配新的bash变量,bash,loops,variables,for-loop,Bash,Loops,Variables,For Loop,我有pdb_列表。日志如下所示: cat pdb_lists.log 'PDB1','PDB2' 我需要从上面的列表中检查每个PDB的TDE状态,并分配给新变量 for i in $( cat $SQL_SPOOL_LOG_DIR/pdb_lists.log | sed "s/,/ /g" | sed "s/'/ /g") do PDB_TE_STATUS=$ORACLE_HOME/bin/sqlplus '/as sysdba' << EOF

我有
pdb_列表。日志如下所示:

cat pdb_lists.log
'PDB1','PDB2' 
我需要从上面的列表中检查每个PDB的TDE状态,并分配给新变量

 for i in $( cat $SQL_SPOOL_LOG_DIR/pdb_lists.log | sed "s/,/ /g" | sed "s/'/ /g")
        do
 PDB_TE_STATUS=$ORACLE_HOME/bin/sqlplus '/as sysdba' << EOF 
            whenever sqlerror exit failure
            connect / as sysdba
            set head off
            set pagesize 0
            set linesize 145
            set feedback off
            alter session set container=$i;
    show con_name;
            spool $SQL_SPOOL_LOG_DIR/pdb_te_enable_status.log
            select status from v\encryption_wallet;
            spool off
 EOF
 CDB_CREATOR_PDB=$ORACLE_HOME/bin/sqlplus '/as sysdba' << EOF 
            whenever sqlerror exit failure
            connect / as sysdba
            set head off
            set pagesize 0
            set linesize 145
            set feedback off
            alter session set container=$i;
    show con_name;
            spool $SQL_SPOOL_LOG_DIR/pdb_cdb_creator_pdb_status.log
            select distinct CREATOR_PDBNAME from v\$encryption_keys where CREATOR_PDBNAME not like 'CDB$ROOT%' and KEY_ID is not null;
            spool off
  EOF
  done
用于$中的i(cat$SQL_SPOOL_LOG_DIR/pdb_lists.LOG | sed“s/,//g”| sed“s/”//g)
做

PDB_TE_STATUS=$ORACLE_HOME/bin/sqlplus'/as sysdba'使用关联数组。关联数组(也称为映射或字典)的行为类似于数组,但允许使用任意字符串作为索引

declare -A status
for pdb in ...; do
   status["$pdb"]=...
done
要读取PDB的状态(无论是什么),请使用
${status[nameofpdb]}

另请参见…作为旁白--。有关使用文件I/O的最佳实践的讨论,请参阅。还可以考虑运行代码并修复发现的引用错误。