【发布时间】:2015-05-18 11:32:49
【问题描述】:
我仍然对变量扩展的方式感到困惑。这是我的代码:
if [ "$2" ]; then
pattern="*$2*"
else
pattern=""
fi
function list(){
ls -lF $2 > output_file
for dir in `ls -d1 */`; do
list "$dir" $2
done
}
cd $1; path=`basename $PWD`
list "$path" $pattern
此脚本尝试为包含在 $1 中的文件存储一些文件信息,这些文件的名称包含 $2 中给出的字符串。 主要目的只是学习,我要避免的具体错误是存储在pattern中的通配符被解释为文件名时遇到的错误。
find、stat 和使用不带 ls 的模式可以获得所需的输出(我很高兴学习最优雅的方式。但这里的主要问题是如果你想通过,如何处理通配符它们作为参数。
【问题讨论】:
标签: bash function wildcard ls expansion