bash将参数视为函数

时间:2015-12-03 09:23:47

标签: git bash

我有这个功能,让我更轻松地推送到git。它可以在没有参数的情况下推送,但是当我将参数传递给函数时,我得到$_POST['...']。据我所知,我正在正确地调用该函数。

-bash: parameter: command not found

当我使用function gitPush { if ($1) then if ($2) then git push $2 $1 else git push origin $1 fi else git push origin master fi } 调用它时效果很好,但是gitPush不起作用。

我想知道我做错了什么以及如何解决它。

我不知道它是否会影响函数的执行(期望不会),但我使用的是Putty

2 个答案:

答案 0 :(得分:4)

Sub没有做你认为它做的事情 - 它试图在子shell中执行存储在第一个参数中的命令。

要测试是否存在参数,可以使用以下命令:

($1)

或者只是简单地计算参数,您可以使用以下内容:

if [[ -n $1 ]]

答案 1 :(得分:3)

我想你可以用以下方式缩短这个时间:

function gitPush {
    local remote=${2:-origin}
    local branch=${1:-master}
    git push "${remote}" "${branch}"
}

但总而言之,这可能不是你想要使用的东西。

您可以添加.gitconfig中的

[push]
default = tracking

如果你不提供参数,那么你将总是推送到当前分支的被跟踪遥控器。