Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash脚本帮助“;如果(用户输入)=那么(var)=;_Bash - Fatal编程技术网

Bash脚本帮助“;如果(用户输入)=那么(var)=;

Bash脚本帮助“;如果(用户输入)=那么(var)=;,bash,Bash,我正在写一个脚本,从Gerrit那里挑选所有未完成的更改。我找到了一个可以正常工作的方法,不过我需要能够更改输入,这样我就不会为每个回购协议使用特定回购协议信息硬编码的脚本 #! /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: |

我正在写一个脚本,从Gerrit那里挑选所有未完成的更改。我找到了一个可以正常工作的方法,不过我需要能够更改输入,这样我就不会为每个回购协议使用特定回购协议信息硬编码的脚本

#! /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未找到的命令
。我不想让它成为一个命令,我希望稍后将其输入到ssh命令中。此外,我还尝试不仅使用
if
,还使用
else if
,以便
PROJECT
可以是任何输入

我想我已经快到了,尽管在这一点上我完全被难住了

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

PROJECT="$1"
将分配项目=XX。其次,

if [ "$1" = "XX" ]; then
如果为true,则将执行“then”子句。本条款为:

"$PROJECT="project:name of project"
尝试执行命令“XX=…”,导致“找不到命令”

建议,删除此行中的$,如中所示:

 PROJECT="project:name of project"

我试试这个。非常感谢。