+ -
当前位置:首页 → 问答吧 → shell 字符串比较

shell 字符串比较

时间:2010-10-24

来源:互联网

刚学shell编程,想实现 打印某个目录下包含某个字符串的所有文件,程序不知哪有问题,总是没有显示,请大家指点!代码如下:

#!/bin/bash

if (( $# < 2 ))
then
echo 请在脚本文件后输入 目录 匹配字符串
exit 
fi

files=`ls $1`

for tmp in files 
do
if [[ $tmp == "*$2*" ]]
then
echo $tmp
fi
done

作者: gd2gx   发布时间: 2010-10-24

for tmp in files  
这句需要引用files的变量值 因此要改成
for tmp in $files  

而且实现你的要求根本没必要那么麻烦 按你的代码 下面这样就行了
#!/bin/bash
if (( $# < 2 ))
then
  echo 请在脚本文件后输入 目录 匹配字符串
  exit 
fi
ls $1/*$2* 2>/dev/null

作者: steptodream   发布时间: 2010-10-24

引用 1 楼 steptodream 的回复:
for tmp in files
这句需要引用files的变量值 因此要改成
for tmp in $files

而且实现你的要求根本没必要那么麻烦 按你的代码 下面这样就行了
#!/bin/bash
if (( $# < 2 ))
then
echo 请在脚本文件后输入 目录 匹配字符串
exit
fi
ls $1/*$2* 2>/dev/null

谢谢这位大哥,学习了

作者: gd2gx   发布时间: 2010-10-24