В приведенном ниже коде я пытаюсь проверить, успешно ли выполнена команда в состоянии if
и что данные были перенесены в целевой файл temp.txt.Что приводит к изменению статуса выхода для той же команды, даже когда вывод идентичен?
Рассмотрим:
#!/usr/bin/ksh
A=4
B=1
$(tail -n $(($A - $B)) sample.txt > temp.txt)
echo "1. Exit status:"$?
if [[ $(tail -n $(($A - $B)) sample.txt > temp.txt) ]]; then
echo "2. Exit status:"$?
echo "Command completed successfully"
else
echo "3. Exit status:"$?
echo "Command was unsuccessfully"
fi
Выход:
$ sh sample.sh
1. Exit status:0
3. Exit status:1
Теперь я не могу получить, почему изменения состояния выхода выше .. когда выход как экземпляры хвоста команды идентичны. Где я здесь не так?
Привет Миклош, спасибо! Но почему он возвращает «1» (Ошибка?) Во втором случае, когда в выполнении команды нет ошибок?? –
Придумал и обновил свой ответ соответственно. –