问题标签 [shopt]
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.
perl - File::Globstar 不适用于某些模式
我正在尝试使用 File::Globstar 模块递归搜索文件。 https://metacpan.org/pod/File::Globstar#EXAMPLES。
.
但是,当路径包含 a或 a时,文档中给出的某些模式对我不起作用_
。
例如,当我执行以下任一操作时,搜索为空:
或者
但是,当我避免使用**
.
难道我做错了什么?
if-statement - 需要帮助将命令组合到脚本中以在 Ubuntu 中运行
我有一堆需要转换为 AC3 的 DTS 音频视频文件。我找到了可以完成任务不同部分的命令,但我不确定如何将它们组合在一起以制作一个有效的脚本。我找到了以下脚本,可以将我所有文件中的音频转换为 AC3,但我希望它只将 DTS 音频文件转换为 AC3。脚本如下。
我还发现这个命令将返回 mkv 文件使用的音频编解码器类型。
所以我想知道如何将两者结合起来创建一个脚本来做我想做的事情。我猜我可以在脚本开头使用 ffprobe 添加一个 if 函数?像这样的东西...
这有什么问题吗?自从我在高中玩图形计算器以来,我就没有写过脚本,因为我很无聊,所以任何帮助都将不胜感激。
bash - 已解决:Catalina bash shopt direxpand 丢失
我是来自 Windows 和 Linux 的 macOS 新手。我想使用 bash 并找到了如何在 Catalina 上升级 bash,现在的版本:
GNU bash, version 5.0.18(1)-release (x86_64-apple-darwin19.5.0)
,还安装了coreutils。
我正在尝试在 .bashrc 中设置 direxpand (在 *nix 变体中按预期工作):
shopt -s direxpand
但是当 .bashrc 被获取时,我得到一个错误:
-bash: shopt: direxpand: invalid shell option name
上网查了几个小时也没找到答案,有大神帮忙吗?
更新 28/07/20 14:08 GMT
有趣的是,在发布之前遵循其他建议,我用 brew 安装了 bash,并且必须将我的 shell 设置/usr/local/bin/bash
为终端应用程序才能使用它。
所以输出bash --version
:
GNU bash, version 5.0.18(1)-release (x86_64-apple-darwin19.5.0)
但是echo $BASH_VERSION
给出:
3.2.57(1)-release
所以有什么不对吗?
此外,运行的输出shopt
不显示 direxpand。
格林威治标准时间 28/07/20 20:00 已解决
对于任何有类似问题的人,这就是我发现的。
与 Catalina 一起安装的 bash 不包括我在 linux 中拥有的相同 shell 选项。
完整的解决方案是使用 brew 安装 coreutils 和 bash:
brew install coreutils bash
然后将新版本的 bash 添加到 shell:
sudo vi /etc/shells
添加/usr/local/bin/bash
然后更改您的用户外壳:
chsh -s /usr/local/bin/bash
然后在终端首选项 > 常规 > shells open with > command (complete path) 添加新的 bash/usr/local/bin/bash
之后shopt -s
确认 direxpand 现在是一个选项,并且我的 .bashrc 按预期工作。
ftp - lftp remove 的负模式匹配
在GitHub 操作中,我想在部署新包后从 FTP 服务器中删除旧包文件。为了实现这一点,我想
- 部署新包
- 解析 ( 等) 的
main-\*.js
哈希polyfills-\*.js
值 - 删除所有匹配的文件,除了具有新哈希的文件
对于 (3),我打算将 lftp 与mrm main-*.!(328276e83108ad3616fd).js
. 然而,这似乎与 lftp 的预期模式不匹配。Shopts exglob 在父 shell 中被激活,但我担心这对 lftp 没有影响。
任何有关如何实现上述目标的提示都将受到高度赞赏。谢谢!
bash - 当包含在函数中时,bash extglob 模式匹配会中断
这有效
这会返回一个错误
我错过了什么,这将允许我在函数中使用它?