I'm working with a script where I want to send a command to delete all elements in an index; notably,
/opt/solr/bin/post -c <my collection> -d "<delete><query>*:*</query></delete>" When run interactively, this works fine. However, when run automatically as a cron job, it gives this interesting output: Unrecognized argument: "<delete><query>*:*</query></delete>" If this was intended to be a data file, it does not exist relative to /root The culprit seems to be these lines, 143-148: if [[ ! -t 0 ]]; then MODE="stdin" else # when no stdin exists and -d specified, the rest of the arguments # are assumed to be strings to post as-is MODE="args" This code seems to be doing the opposite of what the comment says - it sets MODE="stdin" if stdin is NOT a terminal, but if it IS (i.e., there IS an stdin) it assumes the rest of the args can be posted as-is. On the other hand, if the condition is reversed, my command will fail interactively but not when run as a cron job. Both options are, of course, unsatisfactory. It /will/ actually work in both cases, if instead the command to delete the contents of the index is written as: echo "<delete><query>*:*</query></delete>" | /opt/solr/bin/post -c departments -d I've seen this bug in SOLR 7.5.0 and 7.7.1. Should I report it as a bug or is there an easy explanation? Best Carsten Agger -- Carsten Agger Chief Technologist Magenta ApS Skt. Johannes Allé 2 8000 Århus C Tlf +45 5060 1476 http://www.magenta-aps.dk carst...@magenta-aps.dk