我想创建一个 bash 命令来自动将文件从我的公共(public)保管箱更新到我的本地机器。
例如: 我本地/home/john/Directory1/file1.dat 上的文件也位于我的保管箱云中,可以使用以下链接访问:https://dl.dropboxusercontent.com/u/xxxxxx/Directory1/file1.dat
[顺便说一句,这意味着 Directory1/是我的 public/保管箱目录的根目录]。所以我想创建一个名为 MyNewFunction 的函数:
cd /home/john/Directory1/
MyNewFunction file1.dat
MyNewFunction 将执行:
wget -N https://dl.dropboxusercontent.com/u/xxxxxx/Directory1/file1.dat
[-N设置为更新和覆盖file1.dat]
因此,我需要选择当前目录名“Directory1”来创建https链接
最佳答案
当前目录的完整路径在 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"
}
或者:
MyNewFunction () {
wget -N "https://dl.dropboxusercontent.com/u/xxxxxx/${PWD##*/}/$1"
}
关于linux - 带参数的 Bash 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42245782/