2017-09-28 38 views
1

私はパラメータの形式で値を渡しているUNIXシェルスクリプトを持っています。すべてがうまくいくようですが、1つのパラメータでは表示されませんが、echoコマンドで表示されます。パラメータ変数が追加されない

Script-:

#!/bin/bash 

admPath=$1 
admdatatype=$2 
admeaimethod=$3 
admprefix=$4 
gatewayname=$5 
enterpriseName=$6 
userId=$7 
password=$8 
admFilter=$9 

echo "$admPath" 
echo "$admdatatype" 
echo "$admeaimethod" 
echo "$admprefix" 
echo "$gatewayname" 
echo "$enterpriseName" 
echo "$userId" 
echo "$password" 
echo "$admFilter" 


srvrmgr -g "$gatewayname" -e "$enterpriseName" -s gepfdevss -u "$userId" -p "$password" -c "run task for comp ADMBatchProc with admpath="$admPath", admdatatype="$admdatatype", admfilter="'$admFilter'", admeaimethod=$admeaimethod, admprefix="$admprefix"" -b >> exportLOVStatus.out 

私は、その値iの'[List Of Values Parent (UDA).Value]=\"XRX_TEST\"'として渡したいadmFilterと呼ばれる一つのパラメータを持って見ることができるように。

私は、スクリプトの上に実行すると、私はは、以下のように結果をエコー見ることができます - :

実行 - :

./exportLOV.sh "/global/u70/globepfdev/ADM" "LOV" "Upsert" "export_ADM" "gateway" "enterpriseserver" "user" "password" \''[List Of Values Parent (UDA).Value]=\"XRX_TEST\"'\' 

エコー結果 - :

/global/u70/globepfdev/ADM 
LOV 
Upsert 
export_ADM 
gateway 
enterprise 
user 
password 
'[List Of Values Parent (UDA).Value]=\"XRX_TEST\"' 

しかしとして正常に接続された後、Server Managerに対してコマンドが実行されます。このadmFilterパラメータは値を読み取っていません。これはrun taskコマンドの出力である - :

run task for comp ADMBatchProc with admpath=/global/u70/globepfdev/ADM, admdatatype=LOV, admfilter=$admFilter, admeaimethod=Upsert, admprefix=export_ADM 

あなたが他のすべてのパラメータがadmFilterから離れて、それに関連付けられた値を持って見ることができます。私はこれのために誰でも私を助けることができます。どのように私は正しく値を渡すことができますか?ありがとう

+0

を参照してください。これは、あなたが書いた場合に得られる結果です: 'admfilter =" '$ admfilter' "、' – Barmar

+0

@Barmarあなたは正しいと思います。 –

答えて

3

単一引用符は、変数が展開されないようにします。二重引用符で囲まれた文字列の中に一重引用符を入れる必要があります。したがって、それらの文字は文字通りsrvrmgrコマンドの外側には送られません。

-c引数の各変数を二重引用符で囲む必要はありません。

srvrmgr -g "$gatewayname" -e "$enterpriseName" -s gepfdevss -u "$userId" -p "$password" -c "run task for comp ADMBatchProc with admpath=$admPath, admdatatype=$admdatatype, admfilter='$admFilter', admeaimethod=$admeaimethod, admprefix=$admprefix" -b >> exportLOVStatus.out 

私はそれは可能性がどのように表示されていないDifference between single and double quotes in Bash

関連する問題