でbashスクリプトを実行している私は私のbashスクリプトは、私が必須の引数
bash.sh --subj directoryname --input filename --all
--subj
、--input
を入力した場合にのみ動作しているように、そして--all
は、すべてのスクリプトを動作させるために必要な、と--all
引数がないされたいです入力が必要です。
--subj
または--input
のいずれかが欠落している場合、私は、次のメッセージが印刷されたい:ディレクトリ名とファイル名の両方を提供
してください。
--all
引数が欠落している場合は、私が印刷したい:
Please use --all option.
私はoptparse
を使用してのGithubからスクリプトを修正します。このコードを使用して
source optparse.bash
optparse.define short=s long=subj desc="subject name" variable=subj
optparse.define short=i long=input desc="The file to process" variable=input
optparse.define short=a long=all desc="all option" variable=all value=true default=false
source $(optparse.build)
if [ "$subj" == "" ]; then
echo "ERROR: Please provide a directory name"
exit 1
fi
if [ "$input" == "" ]; then
echo "ERROR: Please provide an input"
exit 1
fi
if [ "$all" == "" ]; then
echo "ERROR: Please use the all option"
exit 1
fi
https://github.com/nk412/optparse/blob/master/sample_head.sh
、それは私が--subjまたは-inputをミスしたときのディレクトリ名を入力してくださいと言うん。しかし、私がすべてを欠場すると、それは何の誤りも言わない。なぜそれが分かっていますか?そのドキュメントから
なぜオプションがあるのですか?単に 'bash.sh directoryname filename'を使用してください。 – chepner
@chepner:何らかの理由でこの作業をそのまま行う必要があるので、--subj、--input、--allを使用する必要があります。( – Lena
ソース$(optparse .build) 'once。 – tripleee