스크립트에 인수로 전달하기 위해 파일을 반복합니다.

스크립트에 인수로 전달하기 위해 파일을 반복합니다.

some.sh여러 파일을 반복하는 스크립트가 있습니다.

#!/bin/bash
path_to_destin ="/some/path/"
path_to_raw ="some/other/path"
list = "001 002 003"
for l in $list
do
    mkdir $path_to_destin/output_$l
    python somescript.py -input $path_to_raw/dir_$l -output $path_to_destin/output_$l/table_$l.txt 
done

스크립트는 3개의 파일 과 table_001.q.table_002.qtable_003.q

루프 후에 다른 스크립트는 이러한 파일을 입력으로 사용합니다.

some_other_script -i table_001.q -i table_002.q -i table_003.q -o all.q

-i table_***표시된 만큼 많이 실행하는 방법이 있나요 $list?

답변1

#!/bin/bash

indir='/some/other/path'
outdir='/some/path'

list=( 001 002 003 )

for i in "${list[@]}"; do
    mkdir -p "$outdir/output_$i"
    python somescript.py -input "$indir/dir_$i" -output "$outdir/output_$i/table_$i.txt"

    inargs+=( -i "table_$i.q" )
done

some_other_script "${inargs[@]}" -o all.q

관찰 결과:

  1. 직장 주변에 공간이 없을 수도 있습니다 =.
  2. 들여쓰기와 공백을 사용하면 가독성이 향상됩니다.
  3. 문자열을 반복하지 말고 배열을 반복하십시오.
  4. 모든 변수 확장을 인용해 보세요.

변수 확장에 대한 인용문:

관련 정보