bash - 在编写 BASH 脚本时使用 scp:“没有这样的文件或目录”
问题描述
我写了一个脚本,它会压缩一个文件夹,然后再存储它。到目前为止,这工作得很好。但现在我想使用 scp 发送它。我想使用 eval 以便可以轻松更改它们。但是当我使用它将文件发送到某个目的地时,它总是告诉我该目录或文件不存在。如果我在没有 $scriptd 的情况下这样做,那么它就像一个魅力。
任何想法为什么?
#!/bin/bash
# Implementation of variables
today=$(date +"%Y-%m-%d")
source="~/Documents"; eval source=$source
target="~/Backups"; eval target=$target
scriptd="~/Documents/Backups"; eval scriptd=$scriptd
main(){
backup
}
backup(){
tar -zvcf $today.tar.gz -P $source
rsync -zhap --progress $scriptd/$today.tar.gz $target
rm $scriptd/$today.tar.gz
scp $target/$today.tar.gz pi@I-Am-An-IP:$scriptd
}
main
exit 0
解决方案
推荐阅读
- python - 停止 main() 函数自动启动
- python - 用 x 轴上的字符串平滑一条线(Python)
- python - 使用 Python 和列的 dtypes 从 CSV 文件生成带有 Pandas 的图形
- azure-devops - 如何在 Swagger 中部署/归档相应的服务器基础端点
- google-apps-script - 在某些机器上,无法从 Google Sheet 模式对话框执行 GAS 服务器端功能
- python - 具有共享 RawArray 的 Python 多处理
- go - 是否可以在语句期间从函数(具有多个返回值)中获取单个值?
- javascript - 我的函数不会增加它的输入值
- android - 针对特定 API 级别的自定义 Android/Flutter 版本
- python - 在 Tkinter 中获取实时数据