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.q
table_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
관찰 결과:
- 직장 주변에 공간이 없을 수도 있습니다
=
. - 들여쓰기와 공백을 사용하면 가독성이 향상됩니다.
- 문자열을 반복하지 말고 배열을 반복하십시오.
- 모든 변수 확장을 인용해 보세요.
변수 확장에 대한 인용문: