如果文件名(只是名称)比较shell脚本

时间:2015-09-01 11:12:17

标签: linux shell

Linux shell脚本中的另一个新手。

基本上我有一个包含许多文件的文件夹。但我只需要获取以".log"

结尾的文件

以下是我的版本<无效

#!/bin/sh
for i in *;
do
        if [ "$i" == "$i".log ]; then
                echo $i;
        fi
done

有人可以帮我吗?非常感谢!

2 个答案:

答案 0 :(得分:3)

你有什么理由不能这样做吗?

for fname in *.log
do
    echo $fname
done

答案 1 :(得分:0)

@ John3136有最简单的答案。使用bash,您可以使用== [[ ... ]]实际上是模式匹配运算符而不是相等运算符的事实:

#!/bin/bash
for f in *; do
    if [[ "$f" == *.log ]]; then
        echo "$f"
    fi
done

请参阅http://www.gnu.org/software/bash/manual/bashref.html#Conditional-Constructs