мое требование действительно простое, я просто хочу проверить, является ли аргумент getopts
пустым или нет.Я запускаю свой сценарий, используя jenkins, и мне нужно проверить, что если предоставленное значение пустое, то установить значение по умолчанию, в противном случае использовать предоставленное значение:
и передать аргументы вСценарий оболочки, подобный следующему:
./rds-db-dump.sh -s ${source_instance_id} -c ${target_instance_class} -i ${source_snapshot_id}
фрагмент из сценария оболочки:
while getopts ":s:c:i:h" opt; do
case ${opt} in
s) SOURCE_INSTANCE_ID="${OPTARG}"
;;
c) TARGET_INSTANCE_CLASS="${OPTARG}"
;;
i) SOURCE_SNAPSHOT_ID="${OPTARG}"
;;
h) usage && exit 1
;;
\?) echo "Invalid option -${OPTARG}" >&2
usage && exit 1
;;
esac
done
echo "SOURCE_SNAPSHOT_ID: ${SOURCE_SNAPSHOT_ID}"
echo "TARGET_INSTANCE_CLASS: ${TARGET_INSTANCE_CLASS}"
, когда я запускаю эту работу, он не дает мне желаемого результата:
Как мне добиться этого с помощью getopts
, чтобы проверить, является ли аргумент пустым, чем присвоить какое-либо значение по умолчанию для выполнения какой-либо операции, в противном случае используйте предоставленное значение аргумента.