相关疑难解决方法(0)

为什么 nullglob 不是默认值?

在大多数 shellnullglob中不是默认的。这意味着,例如,如果您运行此命令

ls *
Run Code Online (Sandbox Code Playgroud)

在一个空目录中,它会将*glob扩展为一个 literal *,而不是一个空的参数列表。有一些方法可以改变这种行为,这样*在一个空目录中将返回一个空的参数列表,这看起来更直观。

那么,是否有理由nullglob默认禁用?如果是,那是什么原因?

shell wildcards

76
推荐指数
1
解决办法
2万
查看次数

使用多种模式运行“ls”时避免非零退出代码

假设我有两个可能的路径,我想列出 Linux 计算机上的目录和文件:

/some/path1/
/some/path2/
Run Code Online (Sandbox Code Playgroud)

如果我在 中执行以下操作,如果或至少之一存在,tcsh我会得到退出代码:0path1path2

ls -d /some/{path1,path2}/*
Run Code Online (Sandbox Code Playgroud)

但是,如果我在 中执行完全相同的操作bash,则会收到2退出代码,并显示一条stderr消息报告path1不存在(如果 path1 是不存在的路径)。

在这种情况下我怎样才能表现bash得像这样?如果至少存在一条路径,是否有一个我可以要求它返回的tcsh开关?如果两者都不存在,我确实期望非零代码,这就是返回的内容。ls0tcsh

bash tcsh wildcards brace-expansion pattern-matching

8
推荐指数
1
解决办法
2006
查看次数