bash循环文件echo.sh文件,无扩展名文件

bash循环文件echo.sh文件,无扩展名文件,bash,Bash,我想回显所有扩展名为.sh或没有扩展名的文件 但我只有*.sh文件,没有扩展名文件 这是我的代码: files=./* for file in $files do if [[ $file == *.sh || $file != *.* ]]; then echo $file fi done 为什么是我的状况 $file != *.* 不工作? 提前感谢问题是您在/*中有与*.*匹配的 你应使用: for file in * do if [[ $file

我想回显所有扩展名为.sh或没有扩展名的文件 但我只有*.sh文件,没有扩展名文件 这是我的代码:

files=./*
for file in $files
do
    if [[ $file == *.sh || $file != *.* ]]; then
        echo $file
    fi
done
为什么是我的状况

$file != *.*
不工作?
提前感谢

问题是您在
/*
中有与
*.*
匹配的

你应使用:

for file in *
do
    if [[ $file == *.sh || $file != *.* ]]; then
        echo "$file"
    fi
done

好的,但是没有像“myfile”这样的扩展名文件?我希望我的函数返回“myfile.sh”并且“myfile”适合我。示例:
file=abc;[[$file==*.sh | |$file!=*.]&&echo true
在我的bash中输出true。