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
#!/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
这句需要引用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
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
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28