问题标签 [wildcard-expansion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
32 浏览

linux - lsblk -n -o NAME,SIZE,TYPE /dev/sd* 2>/dev/null 适用于 cmd 行,不在脚本文件中

我正在编写一个脚本来检测和格式化 Raspberry Pi 的 USB 驱动器。我让脚本完美地适用于通过 USB 适配器插入的 sd 卡。当我尝试使用 USB3 硬盘时它失败了。隔离故障表明脚本中的通配符扩展和重定向处理存在问题。

当我执行 lsblk -n -o NAME,SIZE,TYPE /dev/sd* 2>/dev/null

在根终端中,输出为空,没有任何 USB 设备,插入时为空:

当我在脚本中以这种方式运行它时:

得到的是:

我不明白如何在数组变量($drive)中只获取插入的设备及其分区。lsblk 命令的解释方式与 bash 正确扩展 sd* 并将 stderr 指向 /dev/null 的命令行调用以及它在脚本上下文中的运行方式有所不同。

我已经阅读了与不同 shell 如何解释通配符和重定向有关的类似问题,但这仅涉及 bash。

我能想出的唯一解决方法是创建临时文件,这既不优雅也不吸引人:

0 投票
2 回答
38 浏览

bash - 将回显中的通配符扩展到文件

假设我在 Bash 中有以下内容:

当我检查文件的内容时,.env路径仍然包含通配符。假设只有一个匹配项,如何确保通配符扩展为路径,以便回显时文件中不存在通配符?

0 投票
0 回答
8 浏览

merge - 使用通配符生成多个文件,然后合并为一个

我的 Snakefile 有两条规则:一条使用通配符生成多组文件,另一条将所有内容合并到一个文件中。我是这样写的:

不幸的是,这不允许我跟踪从第一条规则到第二条规则的文件:

我可以使用什么来生成带有通配符的 22 组文件chrgenerate但能够在输入中跟踪它们merge?预先感谢您的帮助