将值传递给shell脚本

将值传递给shell脚本,shell,parameters,scripting,Shell,Parameters,Scripting,当我在下面跑步时: export c_db1=oraclenod1 export c_db2=oraclenod2 perl $dboh/clone/bin/clone.pl ORACLE_HOME="$dboh" ORACLE_HOME_NAME="${db_upper}_ORACLE_HOME" ORACLE_BASE="${dboh_base}" '-O"CLUSTER_NODES={"${c_db1}","${c_db2}"}"' 我得到以下信息: export c_db1=

当我在下面跑步时:

export c_db1=oraclenod1  
export c_db2=oraclenod2 
perl $dboh/clone/bin/clone.pl ORACLE_HOME="$dboh" ORACLE_HOME_NAME="${db_upper}_ORACLE_HOME" ORACLE_BASE="${dboh_base}"  '-O"CLUSTER_NODES={"${c_db1}","${c_db2}"}"'
我得到以下信息:

export c_db1=oraclenod1  
export c_db2=oraclenod2 
perl $dboh/clone/bin/clone.pl ORACLE_HOME="$dboh" ORACLE_HOME_NAME="${db_upper}_ORACLE_HOME" ORACLE_BASE="${dboh_base}"  '-O"CLUSTER_NODES={"${c_db1}","${c_db2}"}"'
我已经试过通过c_db1和c_db2,有人能帮我知道如何通过吗

谢谢你的帮助


谢谢,SM

您在最后一个参数中使用了sijngle引号

./runInstaller -clone -waitForCompletion  "ORACLE_HOME=/u01/oracle/dba/product/11.2.0.3" "ORACLE_HOME_NAME=DBA_ORACLE_HOME" "ORACLE_BASE=/u01/oracle/dba/product" "CLUSTER_NODES={"${c_db1}","${c_db2}"}" -silent -noConfig -nowait    
单引号可防止变量扩展:

假设您需要这些文字引号,请这样做

'-O"CLUSTER_NODES={"${c_db1}","${c_db2}"}"'
根据你的评论,你不需要所有的内部报价,所以

"-O\"CLUSTER_NODES={\"${c_db1}\",\"${c_db2}\"}\""

当我在下面运行时:perl$dboh/clone/bin/clone.pl ORACLE\u HOME=“$dboh”ORACLE\u HOME\u NAME=“${db\u upper}u ORACLE\u HOME”ORACLE\u BASE=“${dboh u BASE}””-O“CLUSTER\u NODES={\“${c\u db1}”,“${c\u db2}”我在下面:./runInstaller-clone-waitForCompletion“ORACLE\u HOME=/u01/ORACLE/dba/product/11.2.0.3”“ORACLE\u HOME\u NAME=DBA\u ORACLE\u HOME”“ORACLE\u BASE=/u01/ORACLE/DBA/product”“CLUSTER\u NODES={\”${c\u db1}“,“${c\u db2}”}”-silent-noConfig-nowait感谢TartanLlama编辑我的帖子。感谢您的更新,我仍然有相同的问题变量不去CLUSTER\u NODES让我澄清一下,我需要如下:'-O“CLUSTER\u NODES={oraclenod1,oraclenod2}''使用脚本..当我像下面这样传递:perl$dboh/clone/bin/clone.pl ORACLE_HOME=“$dboh”ORACLE_HOME_NAME=“${db_upper}ORACLE_HOME”ORACLE_BASE=“${dboh u BASE}”'-O\“CLUSTER_节点={${c_db1},${c_db2}\”日志文件显示的像CLUSTER_节点必须在}中指定!我们猜不出你的代码是做什么的。clone.pl对它接收的参数做了什么?