[英]How to “export” out put of command “date”? (linux / expect / sftp)
我想計划從sftp服務器復制文件。 公鑰是不允許的,所以我只知道一種使用Expect的方法。
問題是文件名每天都在變化,但是文件名實際上是date + .csv,所以我可以安排它。
但是無法設置變量文件名...
我想在2個腳本中執行類似的操作。
文件名=日期%Y%m%d
連接到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”上
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:錯誤的變量名
#!/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.