Bash脚本帮助“if(用户输入)= then(var)=”

时间:2015-07-11 03:38:37

标签: bash

我正在写一个脚本来挑选Gerrit的所有公开更改。虽然我需要能够更改输入,但是我没有为每个使用特定repo信息硬编码的repo编写脚本,我找到了一个。

#! /bin/sh
REMOTE="${1-review}"

ssh -p 29418 user@gerrit.remote.com gerrit query --format=text --patch-sets status:open branch:XXX project:XXX | grep revision: | awk '{print $2;}' | while read ID

do
    git fetch "${REMOTE}" && git cherry-pick "${ID}"

done

现在我已经能够成功选择开放式更改,但我正在努力实现它,以便我可以传递输入以更改用户名,分支,项目和远程。使用当前方法,我需要手动输入我的用户名,项目,分支和远程到脚本中。然后它只适用于那个特定的回购。

我在使用if / then语句时遇到问题。我知道,因为它现在看起来没有我要求的东西被编码,我想提供一个有工作模型的人。

我确实更改了用户名和特定的详细信息,很容易让某人自己使用这个脚本来插入必要的信息。

如果我这样做:

PROJECT="$1"

if [ "$1" = "XX" ]; then
  "$PROJECT="project:name of project"

然后bash返回XX command not found。我不是试图使它成为一个命令,我希望它输入以便稍后插入到ssh命令中。此外,我不仅尝试使用if而且使用else if,以便PROJECT可以是输入的内容。

我认为我几乎在那里虽然在这一点上完全被困住了。

1 个答案:

答案 0 :(得分:1)

假设$ 1等于“XX”。你的代码:

PROJECT="$1"

将分配PROJECT = XX。接下来,

if [ "$1" = "XX" ]; then

是真的,“then”子句将被执行。该条款是:

"$PROJECT="project:name of project"

试图执行命令“XX = ...”,导致“命令未找到”

建议,在此行中删除$,如:

 PROJECT="project:name of project"