2014-07-03 163 views
0

我有一個任務,可以在for循環中找到文件,5分鐘內沒有更改,可能有1個子文件夾,並將它自動ftp到遠程位置。 爲此,find命令對我來說工作正常。 但我需要剝離基礎文件夾和文件名以查找可能的子文件夾並在ncftpput命令中使用該文件夾。在BASH腳本中嵌入變量

我開始用這樣的:

HOST=1.2.3.4 
USER=foo 
PASS=bar 
LDIR="/storage/external/ftp/foo/bar" 

for FOUND in `find ${LDIR}/ -maxdepth 2 -type f -mmin +1 `; do 
    RDIR="$FOUND | cut -d/-f 6" 
    echo "LDIR = $LDIR" 
    echo "RDIR = $RDIR" 
    echo "FOUND = $FOUND" 
    ncftpput -u $USER -p $PASS -R -DD $HOST /$RDIR/ $FOUND 
    echo " " 
done 

但RDIR = 「$找到|切-d/-f 5」 用正確的價值不是返回。無論是空白還是語法錯誤,或者使用路徑+ |切-d/-f 6. 也試過其他蜱,反引號,$()等

嘗試:

RDIR= "$FOUND | cut -d/-f 6" 
RDIR= '$FOUND | cut -d/-f 6' 
RDIR= `$FOUND | cut -d/-f 6` 
RDIR= $FOUND | cut -d/-f 6 
RDIR= $($FOUND | cut -d/-f 6) 
RDIR= "$($FOUND | cut -d/-f 6)" 
RDIR= '$($FOUND | cut -d/-f 6)' 
RDIR= `$($FOUND | cut -d/-f 6)` 

比我放棄了。

任何人都可以指向正確的方向嗎?

謝謝。

回答

0

這可能是一個開始:

RDIR=$(echo "$FOUND" | cut -d/-f 6) 

也許(你應該檢查),它應該是-f 7知道子文件夾。 此外,在查找命令不應該是-mmin +5

+0

真的那麼容易:) 非常感謝。 – SHLelieveld

+0

很高興幫助;) – condorwasabi