基本的に私はスクリプトに渡される引数をチェックしようとしています。 3つの引数があり、3つ目の引数が1の場合は、それを続行します。私もバッシュにはないようだがだから、基本的に私はちょうど行うことができると思った...引数bashスクリプトの問題を確認する
if ([ $# -ne 3 ] and [ "$3" -ne "2" ])
then
exit 0
fi
1.
ではありません、それは四つの引数と第三引数を持っている場合、それは続けたいですifのために使用する必要があります。だから、私はちょうど入れ子のifを使うことができると考えましたが、今はまだ不平を言っています。これは現在私が持っているものです...
if [ $# -ne 3 ]
then
if [ "$3" -ne "1" ]
then
echo "Improper number of arguments.
FORMAT make-csv-data <STUDY> <TAG> <MODE> <SELECT>
Select can be left off if you want all data (Mode=1)
"
exit 0
fi
fi
if [ $# -ne 4 ]
then
if [ "$3" -ne "2" ]
then
echo "Improper number of arguments.
FORMAT make-csv-data <STUDY> <TAG> <MODE> <SELECT>
Select can be left off if you want all data (Mode=1)
"
exit 0
fi
fi
どこが間違っていますか? Bashのif文を入れ子にすることはできませんか?これを行う超禅の方法は、私は完全に欠けているのですか?
私に教えてくれてありがとうございました。
という新たな問題...今
、何らかの理由または別のために、コードがまったく機能していません。エラーや何もない、それだけで動作しません。引数の数はチェックしません。私は議論のないスクリプトを実行しましたが、そこにいなくてもそれをスキップします。
私はコードが昨日動作していたと確信しています。今日は戻って来ないでください。問題の内容は何ですか? (申し訳ありませんが、私はこの上の受け入れ答えを削除する必要があります。)
if [[ $# = 3 && "$3" != "1" ]]
then
echo "Improper number of arguments.
FORMAT make-csv-data <STUDY> <TAG> <MODE> <SELECT>
Select can be omitted if all data is required (Mode=1)
"
exit 0
fi
if [[ $# > 4 ]]
then
echo "Improper number of arguments.
FORMAT make-csv-data <STUDY> <TAG> <MODE> <SELECT>
Select can be omitted if all data is required (Mode=1)
"
exit 0
fi
EDIT II:
バッシュシェルは、私がしようとしているこのスクリプトについては好きにされていないことがいくつかありますする。私はおそらく別のスクリプト言語でそれを書き直してしまうでしょうし、私がプロジェクトに留意していることをいくつか追加します。いずれにしても助けてくれてありがとう。
どのようなエラーが表示されますか? – Glen