java - 如何在 testcontainers execInContainer 方法中通过管道传输命令

标签 java bash redis testcontainers

我想通过 testcontainer execInContainer 方法在 docker 上运行管道命令。我可以运行单个命令(例如 execInContainer("redis-cli", "keys", "*"),但是在提供管道时(例如 execInContainer("redis- cli", "keys", "*", "|", "grep", "-v", "test")) 它会读取它,因为它属于上一个命令(ERR 错误编号'keys'命令的参数)。我想要实现的是从redis中删除除一个之外的所有键。完整的脚本如下 redis-cli keys * | grep -v test | xargs redis-cli DEL。知道我该怎么做吗?

最佳答案

我筹集了this issue与 testcontainer 团队合作。

看起来你可以这样做:

execInContainer("sh", "-c", "foo | bar")

你能试试这个吗?它应该可以工作。

关于java - 如何在 testcontainers execInContainer 方法中通过管道传输命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69569247/

相关文章:

java - 这个 Singleton 是线程安全的吗?

linux - 如何在 bash 脚本中获取字符串中的一些值

bash - 从 linux 中的循环中的字符串中提取特定字符

linux - 如何在文件中查找字符串并将下一个单词作为输入?

java - 接受右值引用作为参数的方法的 Swig 行为

java - 解析 findBy 中的嵌套对象属性

java - 我的函数无法在 JavaFx 中调用

sorting - 优化redis排序集内存使用

sql - 制作 Redis 集合以进行快速查找

redis - 返回没有设置的 KEYS