小编h0c*_*355的帖子

用于将磁盘添加到 fstab(如果不存在)的脚本

首先,我已经阅读了许多带有 if 子句的帖子(见底部)以在文件中搜索特定字符串并按照 1to1 的顺序关注这些帖子,但是我无法让我的脚本正常工作。/etc/fstab如果尚不存在,我想输入:

#!/bin/bash
fstab=/etc/fstab

if grep -q "poky-disc" "$fstab"
then
    echo "#poky-disc" >> /etc/fstab
    echo "/dev/sdb1 /media/poky ext4 defaults 0 2" >> /etc/fstab
else
    echo "Entry in fstab exists."
fi
Run Code Online (Sandbox Code Playgroud)

提前感谢您的帮助。这些是类似的帖子,并没有进一步帮助我:

bash grep path

10
推荐指数
2
解决办法
1万
查看次数

如何在Paypal快速结账PHP中设置1/3/5年结算周期

我正在使用paypal作为支付网关,并希望创建重复的配置文件,如

  • 20美元的1年计划
  • 40美元的3年计划
  • 50美元的5年计划

但是当我添加BILLINGPERIOD=year&BILLINGFREQUENCY=3为params时,从paypal api获取错误:

并得到错误:

Billing frequency must be > 0 and be less than or equal to one year
Error Message: Invalid billing frequencyError Code: 11516
Error Severity Code: Error 
Run Code Online (Sandbox Code Playgroud)

请帮帮我.

php paypal

6
推荐指数
1
解决办法
179
查看次数

如何在bitbake的配方中将文件夹或文件添加到根目录?

我试图将文件夹放入文件系统的根目录.在文档中(例如这里),他们主要使用变量,因此文件和文件夹的SRC_URI结果存储在/usr/bin或者某些东西中,但从不存在/.

所以这是我的食谱:

DESCRIPTION = "Example for adding files and folders to rootfs"

SRC_URI += "file://example_folder"
SRC_URI += "file://example_file"

LICENSE = [...]

do_install() {
    install -d ${D}/rootfolder
    cp -r ${WORKDIR}/example_folder ${D]/rootfolder/
    install -m 0755 ${WORKDIR}/example_file ${D}/rootfolder
}
Run Code Online (Sandbox Code Playgroud)

这只是do_install我尝试的很多变种中的一种.它们中的每一个都导致Error: example not found in the base feeds [...]文件和文件夹中的任何一个或者文件和文件夹没有放在根目录中,而是/usr/bin如上所述.

embedded-linux bitbake yocto

6
推荐指数
1
解决办法
6192
查看次数

如何打印所有 docker 容器而不丢失列标题?

该命令docker container ls -a以以下格式列出在系统上注册的所有 docker 容器(已启动和已停止的容器):

CONTAINER ID   IMAGE                    COMMAND                  CREATED       STATUS                      PORTS                                                                                      NAMES
1e1cabc6ad32   hello-world              "/hello"                 7 days ago    Exited (0) 7 days ago                                                                                                  abcdef
Run Code Online (Sandbox Code Playgroud)

此外我知道 docker 的format命令:

docker container ls -a --format '{{.Names}}'
Run Code Online (Sandbox Code Playgroud)

这仅列出了图像名称,这是我试图实现的目标,但是我不想丢失这些列标题。所以我尝试使用awk

docker container ls -a | awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)

例如,这个列出了图像类型,但该列变成了ID因为第一列的标题CONTAINER ID中有空格。

表越长,这个简单的 awk 命令出现的错误就越多。我注意到列内的所有条目只有 1 个空格,但列之间的分隔符有 3 个空格。

所以我的问题是如何通过 awk 获取一个数组来分隔这样的条目?我想已经有人问过这样的问题了,但我找不到任何东西,因为我对 awk 不太熟悉。

awk docker

6
推荐指数
1
解决办法
1637
查看次数

最后如何应用补丁?

我有一个仅包含 的 *.bbappend 文件SRC_URI。还有补丁,但它们会抛出错误,因为它说没有要补丁的文件。要修补的文件是在基本配方中获取的。

我怎样才能给SRC_URI's 下订单?我尝试了图层优先级和后缀append,但补丁总是由于丢失文件而失败。

bitbake yocto

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

如何停用内核选项?

我想在构建期间停用内核选项:

在内核配方的 .bbappend 文件中,我通过具有以下内容SRC_URI的 .cfg 内核片段文件获取no_usb.cfg

CONFIG_USB=n
CONFIG_USB_TEST=y
Run Code Online (Sandbox Code Playgroud)

第一个条目应该在内核配置中关闭 USB,第二个条目用于测试相反的情况。

这不起作用:既没有出现测试条目,也没有停用 USB。我也在 yocto 源 *.scc 文件中看到过,我为我的文件创建了一个no_usb.cfg

kconf hardware no_usb.cfg
Run Code Online (Sandbox Code Playgroud)

但是我在文档中发现的很少,无法关闭 USB。那么我该如何停用CONFIG_USB

这是我的内核配方(来自飞思卡尔 SDK)linux-qoriq_3.12.bb

require recipes-kernel/linux/linux-qoriq.inc
SRC_URI = "git://git.freescale.com/ppc/sdk/linux.git;branch=sdk-v1.9.x"
SRCREV = "43cecda943a6c40a833b588801b0929e8bd48813"
Run Code Online (Sandbox Code Playgroud)

我有一个带有此附加文件的图层linux-qoriq_3.12.bbappend

SRC_URI += "file://no_usb.cfg"
Run Code Online (Sandbox Code Playgroud)

该层的目录结构如下:

meta-layer
??? recipes-kernel
    ??? linux
        ??? linux-qoriq
        ?   ??? no_usb.cfg
        ??? linux-qoriq_3.12.bbappend
Run Code Online (Sandbox Code Playgroud)

bitbake yocto

4
推荐指数
2
解决办法
3277
查看次数

获取列表中列表中的所有元素

我有以下数据模型:

    public class Customer
    {
        [BsonId]
        public int CustomerId { get; set; }
        public string Name { get; set; }
    }

    public class Order
    {
        [BsonId]
        public int OrderId { get; set; }
        [BsonRef("customers")] 
        public Customer Customer { get; set; }
    }

    public class Cart
    {
        [BsonId]
        public int CartID { get; set; }
        public List<Order> OrderList { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

现在我想通过查询我的购物车集合来访问客户。我尝试过这样的事情:

var collectionCarts = db.GetCollection<Cart>("carts");
var result = collectionCarts.Include("OrderList.Customer").Find(x => x.OrderList[0].Customer.CustomerId == 2);
Run Code Online (Sandbox Code Playgroud)

但是,所有尝试都会导致客户对象为空。我用 LiteDB-Viewer 检查的数据库似乎没问题。

c# litedb

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

如何在单元测试框架 Google Test 中组合测试过滤器?

我有几个单元测试用例,我是用 Google 测试框架编写的:

  1. 测试类:

    class Test: public testing::Test
    {
    public:
      virtual void SetUp() {}
      virtual void TearDown() {}
    };
    
    Run Code Online (Sandbox Code Playgroud)
  2. 实际测试:

    TEST_F(Test, SubTest1)
    {
      // execute Test logic
    }
    
    TEST_F(Test, SubTest2)
    {
      // execute Test logic
    }
    
    TEST_F(Test, SubTest3)
    {
      // execute Test logic
    }
    
    Run Code Online (Sandbox Code Playgroud)

假设我只想显示SubTest1and SubTest3,我必须做什么?重要的是,我想在一个中心位置(主要方法)看到实际执行了哪些测试。

我想,我可以像下面的例子一样“堆叠”过滤器,但这种方法不起作用:

int main(int argc, char** argv)
{
  ::testing::InitGoogleMock(&argc, argv);

  ::testing::GTEST_FLAG(filter) = "Test.SubTest1";
  ::testing::GTEST_FLAG(filter) = "Test.SubTest3";
  return RUN_ALL_TESTS();
}
Run Code Online (Sandbox Code Playgroud)

? 第二个过滤器删除了第一个过滤器,仅SubTest3执行。

c++ googletest

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

CMake 的 -S 和 -H 选项有什么区别?

我花了很长时间寻找一种无需cd进入即可更改 CMake 构建目录的方法。

我最终找到了这个-H选项并用它制作了我的脚本。现在我输入cmake --help并直接看到以下输出:

$ cmake --help
Usage

  cmake [options] <path-to-source>
  cmake [options] <path-to-existing-build>
  cmake [options] -S <path-to-source> -B <path-to-build>
Run Code Online (Sandbox Code Playgroud)

我最近使用:

$ cmake --version
cmake version 3.14.0

CMake suite maintained and supported by Kitware (kitware.com/cmake).
Run Code Online (Sandbox Code Playgroud)

我认为在旧版本中这是缺失的。

-H尽管如此,我想知道和选项之间是否有什么区别-S。此外,我想知道它们是否可以安全使用。我在其他帖子中发现了这个问题,但尚未得到解答(例如此处:How to Tell CMake where to put build files?

cmake

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

如何创建特定于机器的配方?

我想知道是否有机会仅通过文件名创建机器特定的配方,以便我有类似这样的层结构:

\-> recipes-example
     \-> example
         \-> example_1.0.bb_machine1
         \-> example_1.0.bb_machine2
Run Code Online (Sandbox Code Playgroud)

刚刚读过几乎完整的Yocto文档,并且认为我曾经偶然发现这个创建机器特定配方的机会,但无法重新修改它.

备选方案也很受欢迎,但我知道像这个例子的bash解决方案:

do_install() {
   case ${MACHINE} in
      < case statements [...] >
}
Run Code Online (Sandbox Code Playgroud)

recipe embedded-linux bitbake yocto

3
推荐指数
1
解决办法
2152
查看次数

标签 统计

bitbake ×4

yocto ×4

embedded-linux ×2

awk ×1

bash ×1

c# ×1

c++ ×1

cmake ×1

docker ×1

googletest ×1

grep ×1

litedb ×1

path ×1

paypal ×1

php ×1

recipe ×1