Так что в основном я пытаюсь проверить аргументы, которые передаются в сценарий. Если у него три аргумента, а третий аргумент равен 1, я хочу продолжить. Я также хочу, чтобы он продолжался, если он имеет четыре аргумента, а третий аргумент не равен 1.
Так что в основном я думал, что смогу просто сделать ...
if ([ $# -ne 3 ] and [ "$3" -ne "2" ])
then
exit 0
fi
Однако, похоже, что Bash не имеет и должен использовать для 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 [[ $# = 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
РЕДАКТИРОВАТЬ II:
Есть несколько вещей, которые оболочке Bash не нравятся в этом скрипте, которые я пытаюсь сделать. Я, вероятно, в конечном итоге переписать его на другом языке сценариев и сделать еще несколько вещей, которые я имею в виду для проекта. Спасибо за помощь в любом случае.