簡體   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