永发信息网

求一个shell脚本的函数

答案:2  悬赏:50  手机版
解决时间 2021-01-26 18:38
  • 提问者网友:沉默菋噵
  • 2021-01-26 12:42
求一个shell脚本的函数,传入的参数为一个文件的全部路径,如:/home/1/2/3/4/4.txt
存在一个配置文件,名为filename.cfg,他的格式为:

txt
doc
xml
这样的。
如果文件的后缀在配置文件中存在,则返回1,否则返回0。
嫩不能帮我搞一下
最佳答案
  • 五星知识达人网友:人類模型
  • 2021-01-26 13:46
#!/bin/sh
matchSuffix()
{
   filePath="$1"
   ext=${filePath##*.}
   grep -q "$ext" filename.cfg && return 1 || return 0
}
if [ $# -eq 0 ]; then
   echo "One argument is required at least."
   exit 1
fi
matchSuffix "$1"
exit 0

grep加-q选项静默执行,只判断有无而不输出匹配的内容。
脚本参数个数为0,给出错误提示;
脚本参数个数大于等于1,取第一个参数作为文件路径。
函数是在脚本内部定义的,调用方式是可控的,因此对函数参数个数不做判断。
全部回答
  • 1楼网友:詩光轨車
  • 2021-01-26 14:20
tz表示 time zone 吗? 在这句:oset=`echo $tz|tr -d '[a-z+]` 之前,tz 这个变量并没有得到初始化啊?还是已经被设成了环境变量? 请在命令行单独使用 echo $tz 检查一下吧,看有没有正确输出。返回错误的话就是这个问题啦。 yesterday()函数应该就是先调整到合适的时区,最后返回当前日期。 date +%m\/%d\/20%y 输出的就是格式化后的当前日期,例如,今天就是输出09/13/2010。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯