function readArgs() {
while getopts "i:o:p:s:l:m" OPTION; do
case "$OPTION" in
i)
input="$OPTARG"
;;
o)
output="$OPTARG"
;;
...
esac
done
}
readArgs
if [[ -z "$input" ]]; then
echo "Not set!"
fi
これはいつも私にNot set!
を与えているが、私はラインfunction readArgs() {
、}
とreadArgs
をコメントアウトした場合、それが動作します。どうして?関数内の「getopts」が機能しないのはなぜですか?
また、
input="$OPTARG"
echo "$input"
;;
は動作しません。
を行います関数の –
OPは機能のコンテナを記述しませんでした。私は私の.bashrcで書く関数のためにこれらのメソッドを使用します –
この答えはOPの質問に直接答えませんでしたが、なぜgetoptsが関数で動作しないのかを検索し、コードのデバッグに非常に役立ちました(私の.bashrcの関数の場合も) – paulski