특정 확장자로 끝나는 모든 파일을 쉘 글로브와 일치시키고 싶습니다.
.sh
이 경우 첫 번째 줄에 "shebang"(like)을 넣은 후 Bash 셸을 사용하여 실행하는 bourne 파일 인 확장자로 끝나는 모든 파일을 찾고 싶습니다 .#!/bin/bash
예를 들어, 다음은 내 cron 명령입니다.
0 0 * * * "$HOME"/public_html/cron_daily/myfile.sh 2>/dev/null
.sh
대신 확장명으로 끝나는 해당 디렉터리의 모든 파일에 myfile.sh를 대상으로 지정해야 합니다 .
아래 코드가 맞나요?
0 0 * * * "$HOME"/public_html/cron_daily/*$.sh 2>/dev/null
고쳐 쓰다
나는 이것이 glob을 사용할 때 잘 작동한다고 생각합니다.
*.{sh}
답변1
*.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
? 해당 디렉토리가 웹 서버에서 제공됩니까?)
답변2
하나의 명령줄로 병합되므로 이 작업을 수행할 수 없습니다.
for scr in "$HOME"/public_html/cron_daily/*.sh ; do "$scr" 2> /dev/null; done