shell - shell 中的 rsync for 循环

标签 shell for-loop sh rsync

<分区>

我有这个shell脚本

#!/bin/sh
PATHS=( a b c d )

for PATH in ${PATHS[@]}
do
  rsync -avziP /home/user/$PATH $SERVER:$server_folder -b --backup-dir=$backup_folder/backup_$date --delete --exclude=.* --log-file=$HOME/rsync.log
done

我总是得到这个错误:

rsync: command not found

让我发疯的是,如果我删除 for 循环,只运行 rsync 命令,脚本就可以完美运行

最佳答案

PATH 是一个保留变量!

它是指定搜索工具(如rsync)位置的变量

$ set | grep ^PATH=
PATH=/home/user/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

使用另一个变量名!

关于shell - shell 中的 rsync for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13181858/

相关文章:

grep - 使用 grep 捕获操作系统名称

java - 为什么 getRuntime().exec ("/system/bin/am") 总是返回 "Operation not permitted"?

linux - 目录名前缀有两个点是什么意思?

python - 在 Python 3 中使用装饰器的结果(对我来说)令人困惑

python - 具有多个迭代值的 For 循环

regex - 如果知道很少的搜索字符,如何从文件中单独查找单词

linux - 如何通过 grep 响应找出有多少调用超时?

linux - Bash 关联数组错误

java - 在 for 循环内部和循环外部使用变量

android - 读取命令时没有输出?