予想される場合、ファイル名を現在の日付として指定する方法

予想される場合、ファイル名を現在の日付として指定する方法

以下のように予想通りスクリプトを作成しました。 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]
    

おすすめ記事