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