我正在使用busybox外殼執行腳本,當我使用nfs啓動linux時,bash執行該腳本。請讓我知道這條線路的正確選擇。busybox外殼拒絕執行腳本的特定行
cur_major=$((0x`stat -c %t $dev 2>/dev/null`))
busybox引發錯誤,說「0x」的語法錯誤,我知道這是該行的語法問題。
在此先感謝
我正在使用busybox外殼執行腳本,當我使用nfs啓動linux時,bash執行該腳本。請讓我知道這條線路的正確選擇。busybox外殼拒絕執行腳本的特定行
cur_major=$((0x`stat -c %t $dev 2>/dev/null`))
busybox引發錯誤,說「0x」的語法錯誤,我知道這是該行的語法問題。
在此先感謝
我沒有運行它的問題。 嘗試一步一步做,如果一切都失敗了。
$ var=$(stat -c "%t" $dev 2>/dev/null)
$ var=$((0x$var))
實際上$(())
讓你執行算術。你究竟在做什麼?你想轉換爲十六進制數字嗎?
major_hex=`stat -c %t $dev 2>/dev/null`
cur_major=`printf "%2d" 0x"$major_hex"`
嗨,彼得, 感謝您回答這個問題。 在busybox中找不到對bc命令的支持。 由於我所有的驅動程序都是字符模塊,因此無法爲它們上的任何信息執行cat/proc /分區。 我需要找到一種方法,我可以有十進制的主要數字。 第三次發表此評論,因爲我不知道爲什麼它沒有被追加。 – neil1234 2010-04-20 10:57:45
嗨,感謝您的快速回復。 我也試過這個,但busybox shell無法解釋0x。它仍然給語法錯誤。 我正在嘗試使用此腳本基於此行的輸出加載模塊。該腳本對其輸出做了一些比較,並做了mknod。我被困在這裏,因爲有大約50個insmod和50 mknod,如果手動完成,這非常麻煩。 – neil1234 2010-04-15 10:11:44