【会不定期更新】
1、shell的变量什么时候是字符串,什么时候是整数?
答:Shell会根据上下文判断出数值型的变量,并进行变量的算术运算和比较等数值操作。判断标准是变量中是否只是包含数字,如果变量只包含数字,则Shell认定该变量是数值型的,反之,Shell认定该变量是字符串
2、什么时候需要引用变量,什么时候不需要?
答:赋值的时候需要。条件判断(if语句)情况比较复杂,比如如果用(( ))可以不要,其他时候几乎都要引用
3、if [ ]、[[ ]]、(( ))有什么区别?(区别很多,说几个被坑过的地方)
答:[ ]用来测试条件是否满足,如果满足返回1,否则返回0。注意[ ]左右要有空格分隔。shell的if不支持整数直接判断,比如if[ i ]这种是不允许的,但是支持字符串,比如if[ str ]判断str是不是空串。注意:字符串比较可以用> < = >= <=等(大于小于要转义:\> \<),但是整数比较只能用 -eq -ne -gt -lt -ge -le等。[[ ]]字符串比较中> <不需要转义。[[ ]]左右也要空格分割。(( ))中所有变量可以不加入符号前缀$。