栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何将通配符参数传递给bash文件

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何将通配符参数传递给bash文件

父外壳(一个调用)为您

bash show_files.sh *
扩展了外壳
*

在脚本中,您需要使用:

for dir in "$@"do    echo "$dir"done

双引号确保正确处理文件名中的多个空格等。


可能令人困惑的附录

如果您确实确定要扩展该脚本

*
,则必须确保将
*
其传递给脚本(如其他答案中所述,用引号引起来),然后确保在正确的位置将其扩展在处理中(这不是小事)。那时,我将使用数组。

names=( $@ )for file in "${names[@]}"do    echo "$file"done

我经常

$@
不使用双引号,但这是一次或多或少正确的事情。棘手的是它不能很好地处理带有空格的通配符。

考虑:

$ > "double  space.c"$ > "double  space.h"$ echo double  space.?double  space.c double  space.h$

很好 但是,请尝试将其作为通配符传递给脚本,并且…好吧,我们只是说那一点变得棘手。

如果要

$2
单独提取,则可以使用:

names=( $1 )for file in "${names[@]}"do    echo "$file"done# ... use $2 ...


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/400892.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号