![디렉토리 오류입니다](https://linux55.com/image/119371/%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%20%EC%98%A4%EB%A5%98%EC%9E%85%EB%8B%88%EB%8B%A4.png)
현재 프로그램을 실행하는 데 몇 가지 문제가 있습니다. 고객 정보 파일(각 행은 신규 고객임)을 가져와서 템플릿으로 바꿔야 합니다. 각 고객 메시지에는 템플릿에서 생성되고 고객 이메일로 이름이 지정된 파일이 포함되며 awk
이메일 하위 디렉토리에 저장됩니다 sed
. 이제 내 프로그램은 다음 줄을 인쇄하는 것 외에는 "아무 것도 수행"하지 않습니다 ./test.bash: line 19: Emails/: Is a directory
.
1 #!/bin/bash
2 set -e
3
4 if [ "$#" -ne 1 ]; then
5 echo "Illegal number of parameters. Usage:./test1.bash <mm/dd/yyyy>"
6 exit 1
7 fi
8
9 OUTPUT_DIR="Emails"
10 details="p4Customer.txt"
11 template="template.txt"
12 date=$1
13 if [ ! -d "$OUTPUT_DIR" ]; then
14 mkdir -p "$OUTPUT_DIR"
15 fi
16
17 gawk -f g2.awk -v date="$date" "$details" | while read detail;
18 do
19 sed "$detail" "$template" > "$OUTPUT_DIR/$email"
20 done;
awk 파일
1 BEGIN{ FS=",";}
2 {
3 email=$1;
4 fullname=$2;
5 title=$3;
6 n=split(fullname,A," ");
7 name=A[n];
8 amount_owed=$5;
9 if($5>$4)
10 printf "s/EMAIL/%s/;s/FULLNAME/%s/;s/TITLE/%s/;s/NAME/%s/;s/AMOUNT/%s/;s/DATE/%s/\n", email, fullname, title, name, amount_owed, date;
11 }
12 END{}
답변1
선
sed "$detail" "$template" > "$OUTPUT_DIR/$email"
쉘 환경에 영향을 주지 않고 email
정의된 매개변수만 사용하십시오.awk