간단한 쉘 스크립트를 한 줄로 압축하는 방법은 무엇입니까?

간단한 쉘 스크립트를 한 줄로 압축하는 방법은 무엇입니까?

내 친구가 한 줄의 코드로 변환하고 싶은 멋진 쉘 스크립트를 만들었습니다. 변환하고 실행한 후 예상대로 작동하지 않는 것을 발견했습니다. 이상한 오류는 없습니다. 제가 뭔가 잘못하고 있습니다. 다음은 전후 코드입니다.

앞으로

folders=(hydra1)
num=1
while :
do
for i in ${folders[@]}
do
if [ ! -d $i ]
then
mkdir $i
mkdir hydra$num
folders+=(hydra$num)
((num++))
fi
done
sleep 0.1
done

뒤쪽에

while :; do for i in ${folders[@]}; do if [ ! -d $i ]; then mkdir $i; mkdir hydra$num; folders+=(hydra$num); ((num++)); fi; done; sleep 0.1; done

그건 그렇고, 그것이 무엇인지 궁금하다면 폴더를 삭제할 때 스스로 복제하는 폴더를 만드는 작은 바이러스입니다. 데스크탑에서 실행하시면 더 좋을 것 같습니다.

답변1

변수 초기화가 생략됩니다. 비어 있으면 ${folders[@]}for 루프가 입력되지 않습니다.

답변2

folders=(hydra1); num=1; while :; do for i in ${folders[@]}; do if [ ! -d $i ]; then mkdir $i; mkdir hydra$num; folders+=(hydra$num); ((num++)); fi; done; sleep 0.1; done

관련 정보