bash 스크립트에서 underscore ( _ ) 가 있는 변수 스트링을 합칠 때 문제입니다.
글쓴이: dorado2 / 작성시간: 수, 2006/04/26 - 5:33오후
용량이 큰 결과 파일을 분석하는 awk 스크립트를 짜서 분석 중입니다.
시뮬레이션 횟수가 많아서 bash 스크립트로 여러 번 awk를 돌리게 짰는데요.
약간의 불편함이 있어서요.
#!/bin/bash NUMBERS="3 5 10 15 20 25 30" seed_array=(-33 128712 849715 943164 218764 546168 874166 313467 979416 316497 321679) for i in `echo $NUMBERS`; # for different node number do echo Step1. Number of nodes: $i for j in `seq 1 10`; do echo Step2. $j Simulation.. using seed ${seed_array[$j]} ns sim.tcl $1 $3 $2 $4 -seed ${seed_array[$j]} > high_$1_$i_$3_low_$2_$i_$4_$j.txt done done
위와 같은 bash 스크립트에서
high_$1_$i_$3_low_$2_$i_$4_$j.txt 부분이 이상합니다.
맨 끝에는 $j 가 숫자로 치환되어서 파일명에 포함되는데, 중간에 $i 는 생략이 됩니다.
"high_$1_$i_$3_low_$2_$i_$4_$j.txt" 이렇게 따옴표로 묶어도 마찬가지구요.
아마 중간에 _ 언더스코어 문자가 _$i_ 이런 식으로 들어가면 제대로 동작이 안 되는 것 같은데요.
해결방법이 없을까요?
여기 KLDP bash 쪽을 대략 찾아봐도 잘 모르겠어서요.
Forums:
bash가 번뇌하지
bash가 번뇌하지 않도록 변수명을 {, }로 살포시 감싸주시는 건 어떨까요?
----
$PWD `date`
$PWD `date`
${name} 이걸 찾으시는
${name} 이걸 찾으시는 건가요?
ps. 시간차 공격!!
제가 1분 빨랐습니다
제가 1분 빨랐습니다 :twisted:
----
$PWD `date`
$PWD `date`
^^
아 답변감사드립니다.
너무 쉬운거 여쭤보는 거 같아서 조금 죄송스러웠는데,
답변을 빨리 해주시네요
덧붙여서
새로운 bash에서는 `...` 대신 $(...)를 씁니다.
그리고 굳이 for i in `echo $VAR` 할 것 없이 for i in ${VAR} 로 충분합니다.
放下着-----
내려놓으려는 마음도 내려놓기
댓글 달기