2014-07-03 115 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