Сопоставление всех файлов, заканчивающихся определенным расширением, с глобусом оболочки (скажем, все файлы, заканчивающиеся на .sh)

Я хочу сопоставить все файлы, заканчивающиеся определенным расширением, с глобусом оболочки.

В этом случае я хочу настроить таргетинг на все файлы, заканчивающиеся расширением .sh , которые представляют собой файлы bourne, которые я выполняю с помощью оболочки Bash после помещения символа “shebang” (например, #!/bin/bash ) в их первую строку.

Это, например, команда cron, которую я имею:

 0 0 * * * "$HOME"/public_html/cron_daily/myfile.sh 2>/dev/null 

Вместо myfile.sh мне нужно настроить таргетинг на все файлы в этом каталоге, заканчивая расширением .sh .

Правильный ли следующий код?

 0 0 * * * "$HOME"/public_html/cron_daily/*$.sh 2>/dev/null 

Обновить

Я думаю, что это хорошо при использовании glob:

 *.{sh} 

Вы не можете сделать это таким образом, так как они будут объединены в одну командную строку.

 for scr in "$HOME"/public_html/cron_daily/*.sh ; do "$scr" 2> /dev/null; done 

Вы бы просто использовали *.sh для сопоставления всех файлов с расширением .sh . (Добавляя путь соответствующим образом.)

Однако это не будет иметь результат, который вы после. Посмотрите на run-parts для запуска нескольких скриптов из cron :

 0 0 * * * /usr/bin/run-parts "$HOME"/public_html/cron_daily/ 2>/dev/null 

(Это будет запускать все исполняемые файлы в .../public_html/cron_daily , а не только в файлах .sh . Кстати, вы уверены, что стоит держать скрипты cron под public_html ? public_html каталог обслуживается вашим веб-сервером?)