[英]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.