シェルスクリプト内で環境ファイルを見つける必要がある

シェルスクリプト内で環境ファイルを見つける必要がある

.envで終わる環境ファイルが複数あります。同じディレクトリのシェルスクリプトでそれらを見つけたいのですが、

for i in [ ls -1 *env ]    
do
    grep $i *.sh >> ttt    
done    

次のエラーが表示されます:
grep: RE error 49: [ ] imbalance.
grep: 不正なオプション -- 1
使用法: grep -hblcnsviw パターン ファイル . . .

どこに間違いがあるのか​​教えていただけますか?

答え1

どこに間違いがあるのか​​教えていただけますか?

$ shellcheck myscript

Line 3:
    grep $i *.sh >> ttt    
         ^-- SC2086: Double quote to prevent globbing and word splitting.
            ^-- SC2035: Use ./*glob* or -- *glob* so names with dashes won't become options.

$ 

ソースShellCheck はシェル スクリプト内のバグを検出します。

関連情報