Tente isto:
INPUT_FILE='ls -rt "$MY_DIR"/FILE.*.xml | head -1 | xargs -r basename'
Passar xargs o -r flag fará com que ele execute somente basename se as leituras de
menos um item da entrada padrão ( head -1 ).
head -1 será executado, mas você não verá nem capturará nenhuma saída dele.
Além disso, se você não quiser que o usuário veja qualquer saída de erro de ls , poderá redirecionar o fluxo stderr de ls para /dev/null .
INPUT_FILE='ls -rt "$MY_DIR"/FILE.*.xml 2> /dev/null | head -1 | xargs -r basename'
Observe também que adicionei aspas em torno de $MY_DIR . Dessa forma, o comando não falhará se $MY_DIR contiver espaços.
Se você estiver usando um shell moderno como o bash, você deve usar um shell de captura $( ) em vez de backticks. Você também deve considerar mudar o estilo de suas variáveis. Você geralmente deve evitar usar nomes de variáveis em maiúsculas em scripts. Esse estilo geralmente é reservado para variáveis reservadas e ambientais.
input_file=$(ls -rt "$my_dir"/FILE.*.xml 2> /dev/null | head -1 | xargs -r basename)