小编sup*_*ods的帖子

mdadm :元数据版本的差异

谁能告诉我 mdadm 的不同元数据版本之间的区别?

当我尝试命令时mdadm --examine /dev/sda1,我似乎无法在 1.2 版上找到“首选超级块”。此字段显示在元数据版本 0.9 中。

有没有办法获得这样的元数据信息?或者mdadm --examine只是我将要获得的 1.2 版信息的输出?

software-raid mdadm

5
推荐指数
1
解决办法
5877
查看次数

“configure.ac”中“case”中的双方括号 i[[3456]]86

我试图理解以下代码片段。

host_cpu='i386'

case "$host_cpu" in
   i[[3456]]86)
       echo "host_cpu=i386"
   ;;
   x86_64)
       echo "host_cpu=x86_64"
   ;;
   *)
       echo "AC_MSG_ERROR([unsupported CPU type]) "
   ;;
esac
Run Code Online (Sandbox Code Playgroud)

host_cpu='i386'自己添加了变量来测试代码,它切换到echo "AC_MSG_ERROR([unsupported CPU type]) ".

如果我将双括号更改i[[3456]]86)为单括号,如 in i[3456]86),它会切换到第一个选项 yield i386。这对我来说似乎是正确的。

我理解这一点,[并且[[是测试选项。测试条件似乎不适用于这里,因为 switch case 期望输出一个字符。所以我假设 bash 将它作为测试条件选择,它需要用空格分隔,如 in[ a < b ][[ a << b ]]。因为这些 case 语句中没有空格,所以它将被视为正则表达式。这样对吗?

所以我的问题是为什么代码编写者在这里使用了双方括号?当我尝试运行代码时它不起作用,那么他们的意图是什么。

注意:代码取自configure.acGRUB 源代码中的 a。

另外 $host_cpu 和 host_cpu=i386 行似乎没有必要,你能解释一下作者为什么会这样做:

AC_CANONICAL_HOST

case "$host_cpu" in
    i[[3456]]86) …
Run Code Online (Sandbox Code Playgroud)

shell bash autoconf

4
推荐指数
1
解决办法
459
查看次数

标签 统计

autoconf ×1

bash ×1

mdadm ×1

shell ×1

software-raid ×1