Linux 带参数的Bash函数

Linux 带参数的Bash函数,linux,bash,Linux,Bash,我想创建一个bash命令,自动将文件从我的公共dropbox更新到本地计算机 例如: my local/home/john/Directory1/file1.dat上的文件也位于我的dropbox云上,可通过以下链接访问: [顺便说一句,这意味着Directory1/是我的public/dropbox目录的根目录]。所以我想创建一个名为MyNewFunction的函数: cd /home/john/Directory1/ MyNewFunction file1.dat MyNewFunctio

我想创建一个bash命令,自动将文件从我的公共dropbox更新到本地计算机

例如: my local/home/john/Directory1/file1.dat上的文件也位于我的dropbox云上,可通过以下链接访问:

[顺便说一句,这意味着Directory1/是我的public/dropbox目录的根目录]。所以我想创建一个名为MyNewFunction的函数:

cd /home/john/Directory1/
MyNewFunction file1.dat
MyNewFunction将执行:

wget -N https://dl.dropboxusercontent.com/u/xxxxxx/Directory1/file1.dat
[-N设置为更新和覆盖文件1.dat]


因此,我需要选择当前目录名“Directory1”来创建https链接

,只要该命令在您拥有该文件的目录中运行,我想这应该可以做到:

dirName=$(basename `pwd`)
wget -N "https://dl.dropboxusercontent.com/u/xxxxxx/${dirName}/file1.dat"

只要命令在文件所在的目录中运行,我想这应该可以做到:

dirName=$(basename `pwd`)
wget -N "https://dl.dropboxusercontent.com/u/xxxxxx/${dirName}/file1.dat"
这样更好

wget -N "https://dl.dropboxusercontent.com/u/xxxxxx/$(basename `pwd`)/file1.dat"
这样更好

wget -N "https://dl.dropboxusercontent.com/u/xxxxxx/$(basename `pwd`)/file1.dat"

当前目录的完整路径位于
PWD
变量中。您可以使用bash的字符串操作仅获取当前目录的名称:

dir=${PWD##*/}
然后,由于
file1.dat
是第一个参数:

wget -N "https://dl.dropboxusercontent.com/u/xxxxxx/${dir}/$1"
因此,功能将是:

MyNewFunction () {
    local dir=${PWD##*/}
    wget -N "https://dl.dropboxusercontent.com/u/xxxxxx/${dir}/$1"
}
或:


当前目录的完整路径位于
PWD
变量中。您可以使用bash的字符串操作仅获取当前目录的名称:

dir=${PWD##*/}
然后,由于
file1.dat
是第一个参数:

wget -N "https://dl.dropboxusercontent.com/u/xxxxxx/${dir}/$1"
因此,功能将是:

MyNewFunction () {
    local dir=${PWD##*/}
    wget -N "https://dl.dropboxusercontent.com/u/xxxxxx/${dir}/$1"
}
或:


pwd命令?现在还不清楚问题是什么不仅仅是在你的机器上安装dropbox并打开自动同步解决了这个问题?为什么你想要一个bash脚本来实现dropbox桌面应用程序可以实现的功能?@sa77,dropbox不允许出现在我的服务器中。。。但是,是的,pwd司令部会更容易做到这一点吗?现在还不清楚问题是什么不仅仅是在你的机器上安装dropbox并打开自动同步解决了这个问题?为什么你想要一个bash脚本来实现dropbox桌面应用程序可以实现的功能?@sa77,dropbox不允许出现在我的服务器中。。。但是是的,那会更容易