终端上通配符的优雅降级
每当全局模式匹配失败时,它就会停止整个作业。例如,
$ mv *.jpg *.png folder1 && blahblah
mv: cannot stat `*.jpg': No such file or directory
*.png 不会移动到folder1,并且blahblah 不会运行。
下面的脚本仅适用于 .[Az]* 和 * 都成功的情况。
#!/bin/bash
cd $1
du -sk .[A-z]* *| sort -rn | head
如何使通配符优雅地失败,最多只显示警告,但从不停止工作?
Whenever glob pattern match fails, it stops the whole job. For instance,
$ mv *.jpg *.png folder1 && blahblah
mv: cannot stat `*.jpg': No such file or directory
*.png isn't moved to folder1 and blahblah is not run.
And the script below works only for the case when both .[A-z]* and * succeed.
#!/bin/bash
cd $1
du -sk .[A-z]* *| sort -rn | head
How do I make globbing fail gracefully, at most only displaying warnings, but never stopping the job?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 Bash 中,shopt -s nullglob 将允许失败的 glob 扩展为无任何错误。
In Bash,
shopt -s nullglob
will allow a failed glob to expand to nothing with no errors.然后使用循环。吻
then use a loop. KISS