某些程序是否不接受输入文件的进程替换?

2023-12-01

我正在尝试对程序的输入文件使用进程替换,但它不起作用。是因为某些程序不允许输入文件的进程替换吗?

以下不起作用:

bash -c "cat meaningless_name"
    >sequence1
    gattacagattacagattacagattacagattacagattacagattacagattaca
    >sequence2
    gattacagattacagattacagattacagattacagattacagattacagattaca
bash -c "clustalw -align -infile=<(cat meaningless_name) -outfile=output_alignment.aln -newtree=output_tree.dnd"
    (Less verbose output, finishing with:
    No sequences in file. No alignment!

但以下控件确实有效:

bash -c "clustalw -align -infile=meaningless_name -outfile=output_alignment.aln -newtree=output_tree.dnd"
    (Verbose output, finishing with:
    CLUSTAL-Alignment file created  [output_alignment.aln]
bash -c "cat <(cat meaningless_name) > meaningless_name2"
diff meaningless_name meaningless_name2
    (No output: the two files are the same)
bash -c "clustalw -align -infile=meaningless_name2 -outfile=output_alignment.aln -newtree=output_tree.dnd"
    (Verbose output, finishing with:
    CLUSTAL-Alignment file created  [output_alignment.aln]

这表明进程替换本身可以工作,但 clustalw 程序本身不喜欢进程替换 - 可能是因为它创建了一个非标准文件,或者创建了具有不寻常文件名的文件。

程序不接受进程替换的情况常见吗?我该如何检查是否是这个问题?

我在 Ubuntu 9.10 上运行 GNU bash 版本 4.0.33(1)-release (x86_64-pc-linux-gnu)。 Clustalw 版本为 2.0.10。


进程替换创建命名管道。您无法查找命名管道。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

某些程序是否不接受输入文件的进程替换? 的相关文章

  • bash中的用户名、密码程序

    我有一个程序 要求用户输入用户名和密码 然后将其存储在文本文件中 第一列是用户名 第二列是密码 我需要一个命令 在用户输入用户名和新密码时替换密码 如下我拥有的 bin bash admin menu Register User echo
  • 为什么 $((true == false)) 在 bash 中计算结果为 1?

    为什么 bash 有以下行为 echo true false 1 我本以为这会打印0 但它打印1 以下事实使情况变得更加复杂 gt echo true 0 gt echo false 0 gt echo true true 1 gt ech
  • 将二进制输出从文件输出重定向到 stdout

    我有一个专有的二进制文件 它顽固地接受两个文件作为参数 第一个作为输入 第二个作为输出 我想 构建第一个参数 不创建临时文件 使二进制写入标准输出而不是输出文件 第二个参数 我解决了第一个问题 lt 但不确定第二个参数 我编写了以下脚本 看
  • 按进程名称过滤并记录 CPU 使用情况

    Linux 下有选项吗顶部命令 https www man7 org linux man pages man1 top 1 html我可以在哪里按名称过滤进程并将每秒该进程的 CPU 使用情况写入日志文件 top pgrep 过滤输出top
  • 如何在基于 Linux 的系统上的 C 程序中使用 mqueue?

    如何在基于 Linux 的系统上的 C 程序中使用 mqueue 消息队列 我正在寻找一些好的代码示例 可以展示如何以正确且正确的方式完成此操作 也许是一个操作指南 下面是一个服务器的简单示例 该服务器接收来自客户端的消息 直到收到告诉其停
  • 使用 Grep 查找两个短语之间的文本块(包括短语)

    是否可以使用 grep 来高亮所有以以下内容开头的文本 mutablePath CGPathCreateMutable 并以以下内容结尾 CGPathAddPath skinMutablePath NULL mutablePath 这两个短
  • 将 stdout 和 stderr 重定向到带有前缀的单个文件

    我正在编写一个 bash 脚本 需要重定向stdout and stderr我运行到单个文件的命令的输出 在每行前面加上前缀stderr or stdout 因此 有没有一个简单的方法可以做到这一点 from Debian http www
  • Bash 正则表达式——似乎无法匹配任何 \s \S \d \D \w \W 等

    我有一个脚本试图从 gparted 获取信息块 我的数据如下所示 Disk dev sda 42 9GB Sector size logical physical 512B 512B Partition Table msdos Number
  • 通过shell脚本进行串口控制

    我正在开发一个方向控制器 我有一个开发板 它通过 I2C 与传感器 指南针 通信 由于主板非常有限 没有操作系统 我开发了一个简单的程序来接收以下内容 1 get 0 读取传感器的寄存器 0 2 set 0 10 将传感器的寄存器 0 设置
  • 第二次ftruncate失败

    我试图在首次成功执行 shm open 和 ftruncate 后超出共享内存对象 这是代码 char uuid GenerateUUID int fd shm open uuid O RDWR O CREAT O EXCL S IRUSR
  • 使用 python 更改目录

    我碰巧发现我无法从 python 代码中更改实际目录 我的测试程序如下 from os import system def sh script system bash c s script sh cd home sh pwd 的输出pwd
  • 在 unix 中编译 dhrystone 时出错

    我是使用基准测试和 makefile 的新手 我已经从下面的链接下载了 Dhrystone 基准测试 我正在尝试编译它 但我遇到了奇怪的错误 我尝试解决它 但没有成功 有人可以帮助我运行 dhrystone 基准测试吗 以下是我尝试编译的两
  • 在 shell 脚本中将一个子字符串替换为另一个字符串

    我有 我爱苏子并结婚 我想将 苏子 更改为 萨拉 firstString I love Suzi and Marry secondString Sara 期望的结果 firstString I love Sara and Marry 要更换
  • 如何使用 sed 将空格替换为 \(space)?

    当我使用 sed 将所有空格替换为 X 时 该命令有效 命令为 sed s X g filelist tmp 但是 当我尝试用 space 替换所有出现的空格时 代码是 sed s g filelist tmp 这不起作用 我究竟做错了什么
  • 每当 SQLERROR 永远不起作用时

    我不知道可能是什么原因 我已经在网上花了几个小时试图找出我的情况出了什么问题 我查过官方文档 https docs oracle com cd B19306 01 server 102 b14357 ch12052 htm还有一些汤姆 凯特
  • 无法在 Windows 10 上运行 Python 3.7“权限被拒绝”

    当尝试使用 Git Bash 在 Windows 10 上运行 Python 3 7 时 出现以下错误 python version bash c Users Name AppData Local Microsoft WindowsApps
  • Linux中使用管道进行进程间通信

    我已经编写了在 linux 中写入数字以进行管道传输的代码 如下所示 但显示错误 任何人都可以帮助我解决这个问题 基本上该程序的问题陈述如下 一个程序将打开一个管道 向管道写入一个数字 其他程序将打开同一管道 读取数字并打印它们 关闭两个管
  • Ansible 输出格式选项

    是否有一个选项可以使用 ansible 而不是任何其他脚本 来格式化 ansible 输出 例如 name Show version sudo true hosts web front end tasks name Create yum c
  • 如何使用 bash 测试文件系统的目录限制

    我需要测试可以在文件系统 网络安装驱动器和本地 USB 驱动器 上创建多少目录和文件 我现在使用这个 bash 行 for i in 0 999999 do mkdir p i pushd i done 我知道可能可以做得更好 并且我想知道
  • 如何使用ssh直接连接远程docker容器

    我想直接使用 ssh 连接到远程运行的 Docker 容器 通常我可以 ssh i privateKey user host docker ps which will list all running containers docker e

随机推荐