繁体   English   中英

Bash Loop 2阵列

[英]Bash Loop 2 Arrays

我正在尝试为几个数组创建循环,但出现此错误:

./bash.sh: 3: ./bash.sh: source[0]=/media/jon/my\ directory/: not found

这是我的代码如下所示:

sourceFiles[1]=/media/jon/ACER/Documents\ and\ Settings/Laura/Documents/Shared
destinationFiles[1]=/media/jon/My\ Book/Shared

for index in ${!sourceFiles[@]}
do
  sudo rsync -a --delete ${sourceFiles[$index]} ${destinationFiles[$index]}
done

我对bash文件有点绿色,而做一个简单的循环是如此困难,这实在令人沮丧。

更新资料

每个正确答案的顶部都需要一个#!/bin/bash

您的代码看起来还可以。 我认为您虽然没有使用bash(“未找到”不是bash错误消息)。 您可能正在使用/bin/sh吗? 在许多系统上,这是最小的POSIX shell,而不是bash。

POSIX Shell无法将sourceFiles[1]=...识别为分配,因此将其作为命令运行。 因此出现“未找到”错误。

尝试在sudo行中用双引号括住变量:

sudo rsync -a --delete "${sourceFiles[$index]}" "${destinationFiles[$index]}"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM