如何设置git在每次提交到本地仓库后自动推送到远程仓库(包括自动提供我的密码)?
我想设置一次返回值,使其进入while循环:
#!/bin/bash
while [ $? -eq 1 ]
do
#do something until it returns 0
done
Run Code Online (Sandbox Code Playgroud)
为了使这个工作,我需要$? = 1在开始时设置,但这不起作用.
我的shLinux环境中有一个示例脚本,基本上运行的ssh-agent是当前shell,为它添加一个键并运行两个git命令:
#!/bin/bash
eval "$(ssh-agent -s)"
ssh-add /home/duvdevan/.ssh/id_rsa
git -C /var/www/duvdevan/ reset --hard origin/master
git -C /var/www/duvdevan/ pull origin master
Run Code Online (Sandbox Code Playgroud)
脚本实际上运行正常,但每次运行它都会得到一个新进程,所以我认为它可能会成为一个性能问题而且我最终可能会遇到无用的进程.
输出的一个例子:
Agent pid 12109
Identity added: /home/duvdevan/.ssh/custom_rsa (rsa w/o comment)
Run Code Online (Sandbox Code Playgroud)
此外,除此之外,是否可以找到现有ssh-agent流程并将其添加到其中?
我不习惯编写Bash脚本,谷歌没有帮助弄清楚这个脚本有什么问题:
#!/bin/bash
while read myline
do
done
echo "Hello"
while read line
do
done
exit 0
Run Code Online (Sandbox Code Playgroud)
我得到的输出是:
./basic.agi: line 4: syntax error near unexpected token 'done'
./basic.agi: line 4: 'done'
Run Code Online (Sandbox Code Playgroud)
我的bash版本是:
GNU bash, version 3.2.25(1)-release (i686-redhat-linux-gnu)
Run Code Online (Sandbox Code Playgroud)
谢谢.
编辑:当while循环不为空时,脚本可以正常工作.
当我在它的时候......我希望当用户输入任何内容时退出循环,即.只需按Enter键,但Bash保持循环.我怎么能退出循环?
while read myline
do
echo ${myline}
done
echo "Hello"
while read line
do
true
done
exit 0
Run Code Online (Sandbox Code Playgroud) 在互联网上进行一些搜索之后,看起来Bash没有do-while循环.
它是否正确?是否有可靠的来源来证实这一点(缺乏证据表明有一个do-while循环不是一个没有一个参数的论证,也许一个陈述只是不受欢迎)?
是否可以自己定义指令,从而实现do-while循环?还有就是要变换的算法的方式做,而在-loop 而 -loop,但这不是这个问题的范围.
我正在尝试创建一个堆栈aws cloudformation create-stack --stack-name ... --template-body file://...来创建一个堆栈.它在我执行命令后立即输出堆栈ID.但是堆栈所需的资源仍在创建中.
我想输出一些消息,直到创建所有资源.
我不想在循环中描述堆栈.并输出消息,直到获得堆栈创建完成信号.
是否有一个do- while循环在bash?
我知道如何while在bash中编写循环:
while [[ condition ]]; do
body
done
Run Code Online (Sandbox Code Playgroud)
是否有类似的结构,但对于一个do- while环,其中body至少执行一次,而不管的while状况?