3

あるディレクトリにあるすべての *.sh ファイルを検索したいのですが、スクリプトにいくつかのエラーがあります...

#!/bin/sh
for plik in /var/panel/starter/*
do  
    if [ $(basename "$plik") != "priority" ] && [ $(basename "$plik") != "PRIORITY" ] 
    then
    for plik in $plik/*
    do
        filename=$(basename "$plik")
        extension="${filename##*.}"
        filename="${filename%.*}"
        if [ "$extension" == "sh" ]
        then
        echo $plik
        fi
    done
    fi
done 

/var/panel/starter にはいくつかのフォルダーがあり、これらのフォルダーにはシェル スクリプトがあるため、for ループを 2 回使用しました。

これはエラーです:

[: 19: *: unexpected operator
[: 19: sh: unexpected operator
[: 19: sh: unexpected operator
[: 19: sh: unexpected operator
[: 19: *: unexpected operator

問題は、次のような空のフォルダーにあると思います。

/var/panel/starter/cs16/*

そして、私はそれに対処する方法がわかりません。

4

3 に答える 3

14

を使用して同じことを達成できるのに、スクリプトを使用する理由:

find path_to_folder -iname "*.sh"
于 2013-08-06T14:29:25.083 に答える