出於某種原因,該代碼創建問題:嵌套如果:參數太多?
source="/foo/bar/"
destination="/home/oni/"
if [ -d $source ]; then
echo "Source directory exists"
if [ -d $destination ]; then
echo "Destination directory exists"
rsync -raz --delete --ignore-existing --ignore-times --size-only --stats --progress $source $destination
chmod -R 0755 $destination
else
echo "Destination directory does not exists"
fi
else
echo "Source directory does not exists"
fi
它的錯誤了用:
Source directory exists
/usr/bin/copyfoo: line 7: [: too many arguments
Destination directory does not exists
如果在bash前發言沒有問題,我俯瞰什麼簡單的錯誤我用嵌套?
謝謝!
我有一個類似的問題,並且無法使if語句正常工作,因爲它應該使用-z,-n或=。我的問題的解決方案如下:我已經使用回聲並找到設置變量。我想看看「找到」是否找到了什麼。我回應變量並沒有得到任何東西,所以我認爲它是空的。但是我使用$ {#string_name}回顯了字符串的長度,並且看到它的長度爲2,意思是它包含2個空白字符。所以我改變了我是否要檢查長度2(因爲我的正確答案會更長)。你也可以檢查2個空格。希望這可以幫助別人! – keyser 2012-03-01 11:16:51