[BusyBox Shell] Syntax error: Bad fd number

今天在幫忙處理車機DVR的Remote Upgrade問題時,發現原先設計的Shell Script在這個型號上會出現Syntax error: Bad fd number的錯誤,而錯誤出現的該行script是:
wget --post-data="cmd=QUERY_CHECKSUM&MAC=$mac&p1=fw/$2" $1/run >& /dev/null

這行script看起來應該是正確的才是,而且也在別的型號上執行過是沒有問題的,也一樣都是Embedded Linux;經過判斷,發現兩邊的shell用的不一樣,原先script是針對bash跟csh開發的,現在用的是Busybox,而Busybox的shell應該是ash,我想應該是這行script的某個指令在ash上出現問題。

經過谷哥的指導,判斷應該是在後面redirect出問題了,後來把原本該行後面的:
>& /dev/null
改成:
>> /dev/null 2>&1

就可以正常執行了。

所以,在不同的shell上redirect的語法是會不一樣的喔(筆記。