/tmp/1.sh /tmp/2.sh /tmp/3.sh /tmp/4.sh를 실행한 다음 /tmp/1.sh를 다시 반복하려면 어떻게 해야 합니까? 무한 반복하는 것이 가장 좋습니다.
답변1
for
루프 내에서 루프를 사용하십시오 while true
.
while true; do
for script in /tmp/{1..4}.sh; do
"$script"
done
done
true
, ((1))
, [[ x ]]
, printf ''
, eval
를 포함하는 작업을 수행하지 않고도 성공적인 명령을 사용할 수 있지만 :
이것이 true
가장 분명합니다.
C 스타일을 사용할 수도 있습니다.
for ((;;)) {
for script in /tmp/{1..4}.sh; do
"$script"
done
}
/tmp/{1..4}.sh
(원래 zsh의 비표준 구문)은 /tmp/1.sh
/tmp/2.sh
/tmp/3.sh
/tmp/4.sh
목록을 표현하는 방법입니다. csh 스타일 /tmp/{1,2,3,4}.sh
또는 을 사용할 수도 있습니다 /tmp/1.sh /tmp/2.sh /tmp/3.sh /tmp/4.sh
. globbing with를 사용하여 어휘 순서로 끝나는 모든 숨김되지 않은 파일 이름으로 확장할 수도 있습니다 /tmp/*.sh
. 단, bash에서는 ' glob 한정자나 ' 연산자가 없으면 glob이 Text로 확장되지 않기를 원합니다. 일치하는 항목이 없습니다./tmp
.sh
zsh
(N)
ksh93
~(N)
shopt -s nullglob
/tmp/*.sh