Você não pode fazer isso dessa maneira, pois eles serão combinados em uma linha de comando.
for scr in "$HOME"/public_html/cron_daily/*.sh ; do "$scr" 2> /dev/null; done
Desejo corresponder todos os arquivos que terminam com uma certa extensão com um shell glob.
Neste caso, desejo segmentar todos os arquivos que terminam com a extensão .sh
, que são arquivos bourne que executo com o shell Bash depois de colocar um "shebang" (como #!/bin/bash
) na primeira linha.
Este é, por exemplo, um comando cron que eu tenho:
0 0 * * * "$HOME"/public_html/cron_daily/myfile.sh 2>/dev/null
Em vez de myfile.sh, preciso segmentar todos os arquivos nesse diretório, finalizando com a extensão .sh
.
O código a seguir está correto?
0 0 * * * "$HOME"/public_html/cron_daily/*$.sh 2>/dev/null
Acho que isso é bom quando se usa um glob:
*.{sh}
Você só usaria *.sh
para corresponder a todos os arquivos com a extensão .sh
. (Adicionando o caminho conforme apropriado.)
No entanto, isso não terá o resultado que você está buscando. Veja run-parts
para executar vários scripts em cron
:
0 0 * * * /usr/bin/run-parts "$HOME"/public_html/cron_daily/ 2>/dev/null
(Isto irá executar todos os executáveis em .../public_html/cron_daily
, não apenas .sh
arquivos. A propósito, você tem certeza que é uma boa idéia manter os scripts cron sob public_html
? Esse diretório está sendo servido pelo seu servidor web? ?)
Tags wildcards shell-script