2010-04-15 241 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

相关问题