短いオプションのみを許可するスクリプトがすでに存在し、同じスクリプトを拡張して対応する長いオプションを渡したいと思います。既存のコードは次のとおりです。
while getopts :t:c: name; do
case name
t) first=$OPTARG;;
c) second=$OPTARG;;
*) echo 'Invalid option'; break;;
esac
done
SHIFT $((OPTIND-1))
これは短いオプションに適用されますが、長いオプションの解析を可能にするために同じコードを拡張するにはどうすればよいですか?
ベストアンサー1
利用可能なオプションが一貫していないので、私は直接リリースする傾向があります。
SWITCH=false
VAL=default
while [ "$#" -gt 0 ] ; do
case "${1}" in
(-s|--switch) SWITCH=true ;;
(-v|--value) VAL="${2}" ; shift ;;
(-v?*) VAL="${1#-v}" ;;
(--value=?*) VAL="${1#--value=}" ;;
esac
shift
done