Я пытаюсь понять, почему опция bash -e
завершает этот скрипт. Это происходит только тогда, когда выражение вычисляется дает 0
:Почему Bash с опцией -e выходит, когда выражение 'let' оценивается как 0?
#!/bin/bash
set -ex
table_year=(1979 1982 1980 1993 1995)
year=$1
let indice=year-1
real_year=${table_year[$indice]}
echo OK $real_year
Является ли это нормально, когда:
./bash_test_array 2
, но не тогда, когда:
./bash_test_array 1
indice
этот случай равен 0
. Почему опция -e
вызывает выход?
https://www.gnu.org/software/bash/manual/html_node/ The-Set-Builtin.html – anishsane
@Joe: Хотя причина может быть одинаковой, проблема в этом вопросе выражается гораздо проще, чем в этом другом вопросе (присваивание против приращения побочного эффекта). –