我有一个数据文件,当创建一个标志文件时,数据文件是加密的。下面是数据文件名WSPGLOBAL.PAYMENTS.ISO20022_PAIN_01Ver3.66169592.xml和标志文件名SendPaysource的示例。66169592。我希望能够传递标志文件名的数字部分,并且仅gpg对应的数据文件中包含该名称中的数值。
我目前有一个工作脚本,基于通配符做gpg,但可能有一个可能性,有第二个数据文件,还没有准备好发送,没有标志文件。
#!/bin/bash
. /pbapps/pbmis/apps/apps_st/appl/APPSpbmis_ennycebs02.env
if [ -e /misc/pbmis/output/SendPaysource.* ];
then
gpg --always-trust --no-tty -se --passphrase xxxxxxxxx -r xxxxx.xxxxx.com /misc/pbmis/output/WSPGLOBAL.PAYMENTS.ISO20022_PAIN_01Ver3.*.xml
fi
请多多指教。
据我所知,只有当数据文件存在时,才需要传递与之对应的标志文件,下面的代码将完成这项工作:
#!/bin/sh
# Change to bash if the .env file has bashisms
. /pbapps/pbmis/apps/apps_st/appl/APPSpbmis_ennycebs02.env
basedir=/misc/pbmis/output
for data in "$basedir/WSPGLOBAL.PAYMENTS.ISO20022_PAIN_01Ver3."*.xml; do
without_ext="${data%%.xml}" # Remove extension
flagnum="${without_ext##*.}" # Extract after '.' (Represents the number part)
flagfile="$basedir/SendPaysource.$flagnum"
# Check if the corresponding flag file exists
[ -e "$flagfile" ] && {
gpg --always-trust --no-tty -se --passphrase xxxxxxxxx -r xxxxx.xxxxx.com "$data"
}
done