我很难理解为什么会这样-e
选项退出此脚本。
仅当计算的表达式给出时才会发生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
选项导致退出 ?
See help let
:
退出状态:
如果最后一个 ARG 的值为 0,则 let 返回 1; let 返回 0 否则..
的行为let
内置与常用的相同expr
命令:
如果 EXPRESSION 为 null 或 0,则退出状态为 [...] 1 [...]
您可以使用算术扩展来代替:
indice=$(( year - 1 ))
即使指定的表达式的计算结果为 0,该语句也将返回 0。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)