예상되는 경우 파일 이름을 현재 날짜로 지정하는 방법

예상되는 경우 파일 이름을 현재 날짜로 지정하는 방법

아래와 같이 예상대로 스크립트를 작성했습니다. cd 명령에 날짜를 변수로 지정하고 싶지만 날짜를 명령에 변수로 지정하면 '' 쉼표가 추가되어 아래와 같이 오류가 표시됩니다. 해당 쉼표를 어떻게 제거합니까?

#!/usr/bin/expect
#!/bin/bash

set DATE [exec date +%c]
set DATE2 [exec date +'%Y%m%d']


log_user 0
log_file -a /lch/portal/scripts/sftpcheck21/log/sftpcheck21.log
send_log "test ran on $DATE \n"
spawn sftp -o "UserKnownHostsFile=/dev/null" -o "StrictHostKeyChecking=no" -o "Port=8022" [email protected]@sftapx21
expect "[email protected]@sftapx21's password:"
send "London@123\n"
expect "sftp>"
send "cd /PIMCOXXX_FDM/SwapClear/$DATE2\n"
expect "sftp>"
send "lcd /lch/portal/scripts/sftpcheck21\n"
expect "sftp>"
send "get 'P-PSWC-PIMCOXXX_FDM-$DATE2-233518_$DATE2_REP000F1d - Trade Level Pricing_ 1.TXT'\n"
expect "sftp>"
send "exit\n"
interact
log_file

출력은 다음과 같습니다

sftp> cd /PIMCOXXX_FDM/SwapClear/'20220130'
Couldn't canonicalize: No such file or director

답변1

작은따옴표는 Expect 또는 Tcl에서 특별한 의미가 없습니다. 대개쉘은 해당 항목을 삭제합니다, 그러나 Tcl은 그렇지 않습니다.

예상 날짜를 가져오는 몇 가지 기본 제공 방법이 있습니다.

  1. Tcl 사용clock주문하다
    set DATE [clock format [clock seconds] -format %Y%m%d]
    
  2. 기대치를 활용하라timestamp주문하다
    set DATE [timestamp -format %Y%m%d]
    

답변2

다음과 같이 스크립트를 업데이트하고 문제를 해결했습니다.

#!/bin/bash

set DATE [exec date +%c]
#set DATE2 [exec date +'%Y%m%d']
#set DATE3 [ exec /bin/date -d "yesterday" +%Y%m%d]
#set DATE3 [ exec /bin/date -d "-4 day" +%Y%m%d]
set DATE3 [ exec /bin/date -d "today"  +%Y%m%d]

log_user 0
log_file -a /lch/portal/scripts/sftpcheck21/log/sftpcheck21.log
send_log "test ran on $DATE \n"
spawn sftp -o "UserKnownHostsFile=/dev/null" -o "StrictHostKeyChecking=no" -o "Port=8022" [email protected]@sftapx21
expect "[email protected]@sftapx21's password:"
send "London@123\n"
expect "sftp>"
send "cd /PIMCOXXX_FDM/SwapClear/$DATE3\n"
expect "sftp>"
send "lcd /lch/portal/scripts/sftpcheck21\n"
expect "sftp>"
send "get 'P-PSWC-PIMCOXXX_FDM-$DATE3-233518_$DATE3\_REP000F1d - Trade Level Pricing_ 1.TXT'\n"
expect "sftp>"
send "exit\n"
interact
log_file

send "get 'P-PSWC-PIMCOXXX_FDM-$DATE3-233518_$DATE3\_REP000F1d - Trade Level Pricing_ 1.TXT'\n변수 DATE3의 구분 기호로 \를 사용하는 줄에서

관련 정보