我正在尝试编写一个执行此操作的函数:
$ test-function -u {local-path} {destination}
如果第一个参数是-u
,则执行一个函数,该函数将接下来的 2 个参数作为要上传/复制/rsync 的文件的路径和目标。
$ test-function -d {local-path} {destination}
如果第一个参数不是-u
(或它是-d
),则执行一个函数,该函数将接下来的 2 个参数作为要下载/复制/rsync 的文件的路径(假设我在当前文件夹中)和目标。
我在这里和这里找到了建议解决方案的答案。但是,我的函数.bash_profile
返回如下错误:
function test_func {
local a="$1"
local a="$2"
if ( a == "-u" ); then
echo "This means upload"
else
echo "This means download"
fi
}
alias test-function="test_func"
然后:
$ test-function -u
-bash: a: command not found
This means download
$ test-function -d
-bash: a: command not found
This means download
如果我将代码更改为:
if [[a == "-u"]]; then
...
有时候是这样的:
$ test-function -u
-bash: [[a: command not found
This means download
如果我根据我找到的答案之一更改代码:
if ((a == "-u")); then
...
有时候是这样的:
line 53: syntax error near unexpected token `}'
我猜这个错误与 double 有关((...))
。你怎么做呢?