【发布时间】:2018-05-17 07:43:16
【问题描述】:
我有一个脚本,我可以在其中为脚本必须执行的工作传递不同的参数集。选项指定如下:
[Show Help] ./myscript.sh -h
[To Create] ./myscript.sh -c -f /input_loc/input_file.txt
[To Export] ./myscript.sh -e -d /destination_loc/exported_db_date.csv
[To Import] ./myscript.sh -i -s /source_loc/to_import_date.csv
脚本myscript.sh 具有getopts 来解析选项,然后将其推送到case - esac 以对传递的每个参数应用检查和逻辑以检查其有效性。例如,如下所示:
while getopts "cd:ef:his:" o; do
case "${o}" in
Put options and their check logics
esac
done
我的问题是,我可以使用什么逻辑来强制仅在特定集合中呈现论点,例如
Allowed Option set
./myscript.sh -h
./myscript.sh -c -f <file_name>
./myscript.sh -e -d <file_name>
./myscript.sh -i -s <file_name>
NOT Allowed Option set
./myscript.sh -h -c -f <file_name>
./myscript.sh -h -d <file_name>
./myscript.sh -e -s <file_name>
./myscript.sh -c -i -f <file_name>
【问题讨论】: