2015-09-27 78 views
0

我绝不是程序员。我会把它放在那里。但是,我试图编写一个脚本,在抓取uuid数据后写入fstab条目。这是在我的路由器的OpenWRT环境中。我的目标:awk help>发送输出到命令

  1. 抢的uuid信息用awk,如:

BLKID的/ dev/sdb2 | AWK -F'UUID = “|”” '{打印$ 2}'

  • 发送完整UUID输出到这个命令的末尾:
  • UCI组的fstab 。@ mount [-1] .uuid =

    1. 使用正确的uuid执行该命令。

    此命令将uuid写入fstab中的正确位置。这怎么能在bash脚本中完成?

    谢谢,

    KG

    回答

    0

    您可以执行从(使用system(...))AWK中的命令,或从壳体内(使用uci set [email protected][-1].uuid=$(blkid ...))。

    0

    我不能用uci命令测试它,但我相信这应该可以满足你的需求。

    bblkid /dev/sda1 | uci set [email protected][-1].uuid=$(awk -F'UUID="|"' '{print $2}') 
    

    编辑:这可能会更好。

    uci set [email protected][-1].uuid=$(bblkid /dev/sda1 | awk -F'UUID="|"' '{print $2}') 
    

    编辑2:稍短一些,但应该得到相同的结果。承诺这是最后一个

    uci set [email protected][-1].uuid=$(bblkid /dev/sda1 | tr -d UUID=\") 
    
    0

    上述选项没有正常工作。

    如果我有这样的fstab中:

    选项UUID“热狗”

    我想用UUID从该命令的输出,以取代“热狗”:

    在我路由器输出看起来像:

    [email protected]:/etc/config# blkid /dev/sdb2 | awk -F'UUID="|"' '{print $2}' 
    

    8618b8fe-93a9-488c-a901-0df30898c82e

    root @ OpenWrt:/ etc/config#block info |的grep sdb2 的/ dev/sdb2:UUID = “8618b8fe-93a9-488c-a901-0df30898c82e” NAME = “EXT_JOURNAL” VERSION = “1.0” TYPE = “EXT4”

    欲然后替换与字热狗随机uuid,并保持分号。请记住,每次我格式化分区时,uuid都会发生变化。