process-substitution

ffmpeg 在 while 循环内使用 find 无意中改变了迭代变量
process-substitution

ffmpeg 在 while 循环内使用 find 无意中改变了迭代变量

有人可以向我解释一下这里发生了什么吗?这就是我将我的情况简化为: # make 20 test gifs out of the same source file. for i in {1..20}; do cp -p ../some-random-source-file.gif "${i}.gif"; done # grab, then process them. while read f; do echo "→ $f"; ffmpeg -i "$f" -y -loglevel quiet "same.mp4"; done < <(fin...

Admin

如何在 vim 中比较命令输出
process-substitution

如何在 vim 中比较命令输出

我试图vim -d <(ffprobe one.mp4 2>&1) <(ffprobe two.mp4 2>&1)查看两个视频的编解码器等之间的差异,但 vim 打开时不显示任何内容,只是一个空的分屏和此错误 "/dev/fd/12" [Permission Denied] 如何方便地使用 vim diff 来比较两个命令的输出? ...

Admin

docker build inline 命令因进程替换部分而失败
process-substitution

docker build inline 命令因进程替换部分而失败

我想知道为什么这个 docker build 命令失败: docker build -t inline_img -f <(cat `FROM node:12` ) . [+] Building 0.1s (2/2) FINISHED => ERROR [internal] load build definition from 11 0.0s => => transferring dockerfile: 55B ...

Admin

shell 中的临时符号链接 - “命名进程替换” - 重命名文件而不在磁盘上创建副本/符号链接?
process-substitution

shell 中的临时符号链接 - “命名进程替换” - 重命名文件而不在磁盘上创建副本/符号链接?

Thunderbird 不会将没有 .eml 扩展名的文件作为电子邮件文件打开,而是开始撰写新邮件并将其添加为附件。要在脚本中使用 Thunderbird,我正在寻找一种方法,允许您“暂时重命名”file为 a file.eml,在 Thunderbird 中打开它(可能是编辑,但至少是读取)并关闭它而不将任何内容保存到磁盘 - 全部在该进程的内存。 虽然这可以通过复制它或在临时位置创建指向该文件的符号链接来实现有很多优雅的方法来使用进程替换或者这里是字符串相反,它会在 RAM 中创建“临时文件”,这些文件仅在进程期间存在。 有没有什么可以在 bash/zs...

Admin

在 POSIX 脚本中将输出重定向到 /dev/fd/x,其中 /dev/fd/x 替换进程替换
process-substitution

在 POSIX 脚本中将输出重定向到 /dev/fd/x,其中 /dev/fd/x 替换进程替换

我有一个可能的 POSIX 脚本,其中包括过滤 stderr 输出: exec <cmd> "$@" 2> >(grep -v "blih bluh blah") 由于未定义进程替换(即 [SC3001]),因此不会发生重定向。我玩了文件描述符并看了这个邮政以及其他方面,但我不确定以下内容的含义: exec <cmd> "$@" 2>/dev/fd/5; exec grep -v "blih bluh blah" 5<&- >&2 也许 exec <cmd> "$@" 2&...

Admin

模拟文件的进程替换
process-substitution

模拟文件的进程替换

我不记得如何实现这一点,我试图支持用户能够在其命令中包含纯文本以供临时使用: 这里它从文件 file.json 读取: lp_solve --method='simplex' --problem='<file.json>' 但我希望用户能够使用进程替换来内联编写 json: lp_solve --method='exhaustive' --problem=<(echo ' {"foo":"bar","this":"is json"} ') 这可以跨平台吗?我需要在“<()”两边加引号吗? ...

Admin

进程替换中fd分配的顺序
process-substitution

进程替换中fd分配的顺序

受到这个答案的启发https://security.stackexchange.com/a/166645 我想知道当我运行这些命令时奇怪的排序背后的原因: root@6cb8704148bf:/usr/app# echo <(printf "111") /dev/fd/63 root@6cb8704148bf:/usr/app# echo <(printf "111") /dev/fd/63 root@6cb8704148bf:/usr/app# echo <(printf "111") <(printf "222") /dev/fd...

Admin

具有进程替换的命名文件描述符
process-substitution

具有进程替换的命名文件描述符

我正在尝试将命名文件描述符与进程替换一起使用。 我写了下面的代码,但它不起作用: # Open named file descriptors and associate to Process Substitution result exec {folder1_files_list} < <( ls -v "${FOLDER1_PATH}"/* ) exec {folder2_files_list} < <( ls -v "${FOLDER2_PATH}"/* ) IFS=$'\n' read -r folder1_filename ...

Admin

为什么我需要输入按 Enter 键才能完成此命令?
process-substitution

为什么我需要输入按 Enter 键才能完成此命令?

我是一个新的 Linux 用户,我正在做一些实验并试图理解流程替代。我相信我已经对此有了基本的了解。但这里有一个案例,我不知道为什么。我在 Ubuntu 20.04 上使用 Bash。 echo hi只是将hi带有换行符的字符串发送到标准输出。 root@u2004:~# echo hi | od -a 0000000 h i nl 0000003 root@u2004:~# cat可以从管道中读取其标准输入,并将其读取的内容发送到管道。 root@u2004:~# echo hi | cat hi...

Admin

使用 docker 中的进程替换作为输入
process-substitution

使用 docker 中的进程替换作为输入

最近,我在使用docker开发bash管道时遇到了一些问题。这涉及使用进程替换 [<()] 作为特定 docker 命令的输入。我知道这是分区挂载的问题。尽管编写了文件,但有谁知道另一种方法可以在 docker 中进行进程替换? 命令: docker run --rm -v`pwd`:`pwd` docker pull staphb/samtools samtools bedcov <(grep "chr" `pwd`/hsa-genome/BED-new/On-Off_targets.txt | sed -E 's/:|-|;/\t/g' | ...

Admin

Tesseract 不接受进程替换
process-substitution

Tesseract 不接受进程替换

我正在制作一个快速脚本,该脚本应该tesseract在剪贴板中的图像上使用 OCR 工具 ( ) 将其转换为文本并输出。它看起来像这样: #!/bin/sh temp="$(mktemp tmpXXX.png)" xclip -selection clipboard -t image/png -o > $temp tesseract $temp stdout 2>/dev/null rm $temp 我想知道为什么这一tesseract <(xclip -selection clipboard -t image/png -o) stdo...

Admin

如何在进程替换中进行shell变量扩展?
process-substitution

如何在进程替换中进行shell变量扩展?

我的脚本中有这样的命令: regex="abba" diff <(grep "${regex}" file1) file2 问题是如果我运行带有变量的脚本bash script.sh则${regex}不会扩展。我可以以不同的方式运行脚本 - 使用source script.sh.这样变量就得到了扩展。这是怎么回事以及如何更改脚本以便它可以运行? 我还测试了变体:"$regex", "${regex}", $regex。 #!/bin/bash剧本里有咒语。 ...

Admin

通过 sed 过滤 stderr 时 Bash 脚本挂起
process-substitution

通过 sed 过滤 stderr 时 Bash 脚本挂起

介绍 我有一个bash脚本可以通过ssh.它parallel在并行版本中使用 GNU,在顺序版本中使用 for 循环。 该脚本的使用方式如下: foreach_server "cd $dir && find -name '*.png' | wc -l" foreach_server "cd $dir && git --no-pager status" 有时我需要访问conda环境中的可执行文件(https://docs.conda.io/en/latest/),我发现实现这项工作的唯一方法是使用交互式 shell,即bash...

Admin

bash 脚本在失败时打印 stderr
process-substitution

bash 脚本在失败时打印 stderr

如果一切顺利,我试图让 bash 脚本保持沉默,但如果由于某种原因崩溃,则打印出所有 stderr 和调试信息。以下是我到目前为止所拥有的。 #!/usr/bin/bash set -e rm -f /tmp/err trap "sleep 1 && cat /tmp/err" ERR l() { ts >> /tmp/err } echo "About to download stuff:" > >(l) # curl blah blah 2> >(l) # something goes...

Admin

在 tee 进程替换子 shell 中导出全局变量
process-substitution

在 tee 进程替换子 shell 中导出全局变量

command | tee >(var="$(command1)") >(var1="$(command2)") echo "$var $var1" 还尝试了 moreutils 小便 command | pee 'var="$(command)"' 'var1="$(command2)"' 还尝试了导出命令 | tee >(导出 var="$(command1)") >(var1="$(command2)") 问题1 我的需要是使用一个命令输出并由多个命令使用它作为输入。 问题2...

Admin