求一个shell脚本的函数,传入的参数为一个文件的全部路径,如:/home/1/2/3/4/4.txt
存在一个配置文件,名为filename.cfg,他的格式为:
txt
doc
xml
这样的。
如果文件的后缀在配置文件中存在,则返回1,否则返回0。
嫩不能帮我搞一下
求一个shell脚本的函数
答案:2 悬赏:50 手机版
解决时间 2021-01-26 18:38
- 提问者网友:沉默菋噵
- 2021-01-26 12:42
最佳答案
- 五星知识达人网友:人類模型
- 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,取第一个参数作为文件路径。
函数是在脚本内部定义的,调用方式是可控的,因此对函数参数个数不做判断。
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。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯