簡體   English   中英

如何“導出”命令“ date”? (Linux /期望/ sftp)

[英]How to “export” out put of command “date”? (linux / expect / sftp)

我想計划從sftp服務器復制文件。 公鑰是不允許的,所以我只知道一種使用Expect的方法。

問題是文件名每天都在變化,但是文件名實際上是date + .csv,所以我可以安排它。

但是無法設置變量文件名...

我想在2個腳本中執行類似的操作。

腳本1(sh腳本)

文件名=日期%Y%m%d

導出文件名

腳本2(exp腳本)

連接到sftp服務器獲取文件名。

出口

我的努力如下。

我的* .sh腳本=

開始

#!/bin/sh
file=$(date --date='-2 days' +%Y%m%d.csv)"
# looking for something like this (20121031.csv)
export file
expect /home/desk4/task/sftp.exp

結束

我的期望腳本位於“ /home/desk4/task/sftp.exp”上

開始

!/ usr / bin /期望

spawn /usr/bin/sftp user@server.com
expect "user@server.com's password:"
send "password"
send "\r"
expect "sftp>"
spawn "get $file \r"
expect "sftp>"
send "bye \r"

結束

錯誤

./sftp.sh:3:導出:20121031.csv:錯誤的變量名

當我有更新用於測試目的時,如下所示的sh腳本...

#!/bin/sh
file=$(date)
export $file
expect /home/harshit/Desktop/1/sftp.exp

========================================= // sftp.sh:3:導出:2:錯誤的變量名

- 結束 -

感謝您的重播。

“錯誤的變量名稱”錯誤是由於您導出變量的而不是變量的名稱而引起的: export $file錯誤,請使用export file

不出所料,您可以通過全局env數組訪問環境變量,因此請使用$env(file)而不是$file

繼續並在同一行中發布export和variable:

$export filename=`date +'%F' | sed 's/[-]//g'`.csv
$echo $filename
20121103.csv

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM