Создание нового файла и подробный переключатель

Если вы используете логин, посмотрите /etc/login.defs, запись TTYPERM.

Общий совет по отладке :В начале сценария вы должны использовать это для перехвата вывода ошибок из ваших команд, а также убедиться, что запись об устройстве уже существует.

exec >> /home/ubuntu/bin/tty.log 2>&1
0
25.07.2020, 08:45
1 ответ

Вот для чего нужен статус выхода.

touch— это команда для обновления временных меток файла или его создания, если этот файл изначально не существовал.

Он вернет успех в своем статусе выхода, если он выполнил эту цель, и отказ в противном случае¹. В случае сбоя он обычно выводит сообщение об ошибке с подробным описанием причины сбоя.

if touch -- "$file"; then
  printf '%s\n' "$file was created or updated"
fi

В вашем сценарии, если вы хотите убедиться, что не продолжите работу, если touchне удастся, вы должны написать это:

touch -- "$file" || exit

(здесь сценарий завершится с тем же статусом выхода из-за ошибки, что и вtouch).

Или добавьте else exitв оператор ifвыше.


¹ touchтакже мог сообщать об ошибке, даже если ему удавалось обновить файл в некоторых патологических случаях, например, он был убит или закончился какой-то ресурс. В большинстве таких случаев ваш сценарий, вероятно, также будет считать это ошибкой при обновлении файла

.
2
18.03.2021, 23:17

Теги

Похожие вопросы