我正在尝试编写一个 bash 脚本来搜索我的源目录中使用的字符串grep
——不,我不能使用ack
.
目录结构是
标头: .../产品/package/product-模块/i/文件名.h
来源:.../产品/package/product-模块/s/文件名.c
我想要指定或不指定模块的选项(搜索所有模块),这是参数点$2
。问题是,我无法在脚本中工作*$2
或"*$2"
工作(请参见下文)。
编辑:前一种尝试没有任何输出,后者导致“grep:没有这样的文件或目录”
如果我想将它与另一个字符串复合,我该*
如何正确使用它?grep
#!/bin/bash
# Usage: search_src -[si] < module | all > < target >
if [ $1 == "-s" ]; then
fext="c"
subdir="s"
elif [ $1 == "-i" ]; then
fext="h"
subdir="i"
else
fext="[ch]"
subdir="[si]"
fi
if [ $2 == "all" ]; then
module=*;
else
module=*$2;
fi
shift 2;
grep \"$@\" ~/workspace/*/package/$module/$subdir/*.$fext