如何从 shell 向 bash 函数传递参数
我在 .bash_aliases
中定义了以下函数,
findphp () {
find -name '*.php' -exec grep -H --color "$@" "{}" \;
}
它允许我运行 findphp 'function x'
之类的东西来查找对 function x
的所有引用php 文件
现在我想传递文件类型进行搜索,例如 js、css、ctp 作为 bash 中的参数
我定义了以下函数并获取了 .bash_aliases
myfind () {
find -name '*.$1' -exec grep -H --color "$2" "{}" \;
}
但它不起作用,我尝试了单引号,位置周围的双引号 参数 无济于事。
如何定义一个将文件扩展名和搜索字符串作为命令行参数的函数?
I have the following function defined in .bash_aliases
findphp () {
find -name '*.php' -exec grep -H --color "$@" "{}" \;
}
It allows me to run something like findphp 'function x'
to find all references to function x
in php files
Now I want to pass the file type to search, example js, css, ctp as a parameter in bash
I defined the follwing function and sourced .bash_aliases
myfind () {
find -name '*.$1' -exec grep -H --color "$2" "{}" \;
}
But it's not working, I tried single quotes, double quotes around the positional parameters
with no avail.
How could I define a function that takes the file extension and search string as arguments from the command line?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
单引号可防止变量扩展。使用
“*.$1”
Single quotes prevent variable expansion. Use
"*.$1"
试试这个:
或者
如果你也想要文件名
Try this:
or
if you want the filenames too