我有一个 bash 脚本和这个 bash 脚本处理的 -e 标志。我想决定是否需要动态使用这个 -e 标志。代码看起来像这样:
if [...] then;
export EXPIRATION_FLAG="-e 1m";
else
export EXPIRATION_FLAG=""
fi
./my_script.sh $EXPIRATION_FLAG
问题是 bash 将此字符串解析为一个参数,而不是 2 个单独的参数。因此,如果 echo $1 我得到“-e 1m”,如果 echo $2 我得到“”,而不是 $1“-e”和 $2“1m”
脚本本身:
#!/bin/bash
set -x
echo $1
echo $2
while getopts e: OPT
do
case $OPT in
e) expirationPeriod=$OPTARG ;;
*) printUsage ;;
esac
done
shift `expr $OPTIND - 1`
if [ -n "$expirationPeriod" ] ; then
echo $expirationPeriod
fi
任何想法如何解决这个问题?