bash shell学习过程中的疑问:变量类型都是字符串么?

echo $? 将返回值输出到屏幕上,这个$?是一个0-255的整数呢?还是一个'0'-'255'的字符串呢?
我认为是一个'0'-'255'的字符串,但是可以被解读成0-255的整数在它需要为整数的时候, 不知理解的对不对?

变量类型是数字,你可以做以下这样的一个测试:
写一个测试脚本,指定return的返回值,无论是执行函数,还是将函数赋值给变量,执行完脚本后,$?表示返回的数值信息,0表示没有错误(而非显示最后命令的退出状态,并没有错误信息,但返回的不是0,函数运算过后的数值)
当将返回的return信息改为字符串时,则会出现报错,return需要数字参数(说明shell函数中使用return时只能返回数字),$?返回的数值信息为非0