쉘의 for 루프를 사용하여 두 파일을 변경하는 방법

쉘의 for 루프를 사용하여 두 파일을 변경하는 방법

for 루프를 사용하여 셸에서 파일을 만들고 싶습니다. sensor_1.nmf, , 라는 이름의 3개 sensor_2.nmf파일이 있고 sensor_3.nmf소프트웨어를 사용하여 위의 각 파일에 대해 또 다른 7개의 Python 파일을 생성하려고 합니다. 즉, like , ... sensor_1을 사용하여 7개의 Python 파일을 생성합니다 . 내 코드는 다음과 같습니다.r_sensor_1.pyr_sensor_2.py

for j in 1 2 3
do
    for k in 1 2 3 4 5 6 7
        nacs2.2 -l nacs_mphs -m sensor_${j}.nmf -p r_sensor_${k}.py r_sensor_${j}_${k}
    done
done

그러나 이것은 작동하지 않습니다. 누구든지 나를 도와줄 수 있나요? 감사해요.

답변1

for 루프를 반복하는 대신 중괄호 확장을 사용할 수 있습니다.

nacs2.2 -l nacs_mphs -m sensor_${1,2,3}.nmf -p \
r_sensor_${1,2,3,4,5,6,7}.py r_sensor_${1,2,3}_${1,2,3,4,5,6,7}

답변2

내부 for 루프에 "do"가 누락되었습니다.

for j in 1 2 3
do
  for k in 1 2 3 4 5 6 7
  do
     nacs2.2 -l nacs_mphs -m sensor_${j}.nmf -p r_sensor_${k}.py r_sensor_${j}_${k}
  done
done

관련 정보