2010-04-15 240 views
1

我正在使用busybox外殼執行腳本,當我使用nfs啓動linux時,bash執行該腳本。請讓我知道這條線路的正確選擇。busybox外殼拒絕執行腳本的特定行

cur_major=$((0x`stat -c %t $dev 2>/dev/null`)) 

busybox引發錯誤,說「0x」的語法錯誤,我知道這是該行的語法問題。

在此先感謝

回答

0

我沒有運行它的問題。 嘗試一步一步做,如果一切都失敗了。

$ var=$(stat -c "%t" $dev 2>/dev/null) 
$ var=$((0x$var)) 

實際上$(())讓你執行算術。你究竟在做什麼?你想轉換爲十六進制數字嗎?

+0

嗨,感謝您的快速回復。 我也試過這個,但busybox shell無法解釋0x。它仍然給語法錯誤。 我正在嘗試使用此腳本基於此行的輸出加載模塊。該腳本對其輸出做了一些比較,並做了mknod。我被困在這裏,因爲有大約50個insmod和50 mknod,如果手動完成,這非常麻煩。 – neil1234 2010-04-15 10:11:44

1
major_hex=`stat -c %t $dev 2>/dev/null` 
cur_major=`printf "%2d" 0x"$major_hex"` 
+0

嗨,彼得, 感謝您回答這個問題。 在busybox中找不到對bc命令的支持。 由於我所有的驅動程序都是字符模塊,因此無法爲它們上的任何信息執行cat/proc /分區。 我需要找到一種方法,我可以有十進制的主要數字。 第三次發表此評論,因爲我不知道爲什麼它沒有被追加。 – neil1234 2010-04-20 10:57:45

相關問題