107得票8回答
在更新shell之后,.bashrc中找不到shopt命令。

我已经将我的shell更新为ZSH。当我执行source ~/.bashrc时,出现了以下错误: 在执行这个命令时,“yo doctor”出现了一些错误。echo "export NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules&quo...

106得票5回答
什么可以递归地扩展到当前目录中的所有文件?

我知道 **/*.ext 可以扩展到匹配所有子目录中的 *.ext 文件,但是有没有类似的扩展方式可以包括当前目录中的这些文件呢?

57得票4回答
非交互式Bash shell中为什么别名不起作用?

我试图在非交互式的Bash shell中使用别名。我已经在~/.bashrc中定义了我的别名,并设置了变量BASH_ENV=~/startUpFile。其中startUpFile文件的内容是source ~/.bashrc。 当我执行alias命令时,我可以看到我的别名被识别出来。但是,如果...

35得票4回答
将shopt更改为函数本地的方法

我正在尝试编写一个bash函数,它使用nocasematch而不改变调用者的选项设置。该函数定义为:is_hello_world() { shopt -s nocasematch [[ "$1" =~ "hello world" ]] } 在我调用它之前:$ shopt nocase...

27得票5回答
有没有一种简单的方法来为一个glob设置nullglob?

在Bash中,如果您执行以下操作:mkdir /tmp/empty array=(/tmp/empty/*) 你会发现array现在有一个元素,即"/tmp/empty/*",而不是你想要的零个。幸运的是,可以通过使用shopt -s nullglob来避免这种情况。 但是,nullglob...

26得票6回答
使用shell通配符匹配所有嵌套目录下的文件

有没有办法使用 shell 的通配符来识别嵌套的目录?例如,如果我有 dir/dir1/dir2/dir3/dir4/dir5/.. 目录结构,并在这些目录下都有文件,那么与 ls -R 类似,有什么等价的通配符模式可以匹配所有目录下的所有文件呢?

18得票2回答
当没有匹配的文件时,如何跳过for循环?

当我循环遍历以 foo 开头的所有文件时,我会for f in foo* ; do echo "result = $f" ; done 问题在于当foo开头的没有文件时,我会得到以下错误: Translated text: 当foo开头的没有文件时,我会遇到问题:result = foo* ...

15得票2回答
如何在文件名通配符没有匹配项时不匹配任何内容

我想循环遍历所有扩展名为jpg或txt的文件。我的代码如下:for file in myDir/*.{jpg,txt} do echo "$file" done 问题:如果目录中根本不包含任何jpg文件,则循环将进行一次迭代,输出myDir/*.jpg。我认为*将被替换为任意文件(如果不存...

14得票3回答
无法使expand_aliases生效

我无法在bash中实现expand_aliases的生效。我尝试了很多不同的方法,但没有任何作用。这是一个简单的测试案例:/bin/bash -c 'shopt -s expand_aliases; alias cdtmp="cd /tmp"; alias; cdtmp; pwd;' 输出结果...

14得票2回答
shopt -s dirspell是什么意思?

我无法理解其中的含义,我知道 "shopt -s cdspell" 是什么,但找不到 "shopt -s dirspell" 的作用。 根据 Bash 参考手册所述: dirspell 如果被设置,则在单词自动补全期间,如果最初提供的目录名称不存在,则Bash尝试对目录名称进行拼写更正。...