I always use $@ when I want all arguments of bash function but recently I just found that $* also works in the same way, and it also can use as array index. 
My question is What is difference between $* an $@ in Bash? and which one should I prefer? 
 
     
     
    