2016-09-15 60 views
0

工作,我在我的.bashrc文件如下功能:rsync的功能不是在外壳

# functions 
    # rsync transfer for DAMS uploads 
function rsyncDAMS() { 
    rsync -avvPhi --no-p 
} 
export -f rsyncDAMS 

    # general rsync transfer 
function rsyncT() { 
    rsync -avvPhi 
} 
export -f rsyncT 

    # general rsync transfer with deletion of source files 
function rsyncD() { 
    rsync -avvPhi --remove-source-files 
} 
export -f rsyncD 

但无论哪种三个我跑得也带来了rsync的帮助页面。我曾经把它们当成别名,一切正常。我想让它们在.bashrc中起作用,所以我可以使用其中的一些优点。但是,我不清楚为什么这不起作用。

+0

几乎肯定不需要导出它们。唯一会使用它们的是其他'bash'脚本,而且你很少需要shell脚本依赖任何特定用户的环境。 – chepner

+0

是的,我希望能够在我为此计算机专门编写的其他bash脚本中使用它们。 @chepner – Bleakley

+0

最好直接在脚本中定义它们,或者在脚本中明确提供的单独文件中定义它们。 – chepner

回答

1

您需要将参数传递给rsync。它可以使用这样的事情来完成:

function rsyncDAMS() { 
    rsync -avvPhi --no-p "[email protected]" 
} 
+0

我在那里添加了这个功能,但是当我输入这个功能时,它仍然会打开rsync帮助页面。 @Jakuje – Bleakley

+0

因此,在调用函数之前添加'set -x'并用输出更新问题。 – Jakuje

+0

'/ Users/medialab ≈:≈set -x rsyncT + set -x rsyncT ++ print_before_the_prompt ++ printf'\ n \ e [1; 93m%s \ n \ e [0m'/ Users/medialab ' – Bleakley