在传递给pmcmd的param文件中的循环中替换文件名

时间:2016-04-06 13:42:44

标签: shell loops unix sed informatica

我在文本文件中列出了许多文件名,其中每行(file_name)都被提取并传递给pmcmd。 Param文件具有特定的格式,包括全局参数,如用户名,密码,域名,文件名等。我的问题是如何在循环中更改文件名,传递给pmcmd并触发wf从文本文件中列出的每个文件加载数据

这是我的示例脚本

while IFS= read -r var_filename; do
    if [ $p_count -ne 0 ]
    then
    param_file_name=param_file.txt
    out_param=/infa_pmroot/infa_shared/epi/Scripts/claims_dev/test_nv/$param_file_name
    if [ -f $out_param ];  then rm -f $out_param; fi;
    echo $var_filename > $param_file_name
    echo Started executing workflow for $var_filename
    pmcmd startworkflow -sv $Integration_Services -d $Domain -usd $Ldap -u $Username -p $Password -f $Folder -wait wf_workflow_name >>$LogFile 2>>$LogFile
    else 
    echo Check the count of records in PROCESSED_FILE_DETAILS_LOG for the $var_table_name with the "$var_table_name"_FULL_FILE_LIST.txt
    fi
    done < $3"_to_be_processed_file_list.txt"
fi

1 个答案:

答案 0 :(得分:0)

在您的会话中,将$ InputFileName作为源文件名。现在在for循环中将参数附加到param文件中:

echo "[Global]"> $param_file_name
echo "\$InputFileName=$var_filename" >> $param_file_name

然后将参数文件路径传递给pmcmd

pmcmd startworkflow -sv $Integration_Services -d $Domain -usd $Ldap -u $Username -p $Password -f $Folder -paramfile $param_file_name -wait wf_workflow_name >>$LogFile 2>>$LogFile