我正在编写一个bash脚本以从origin.Git中抽取master分支,并在每个应用程序模块中进行初始化。在bash中的命令之间使用&号(&)时重定向stdout和stderr
我的目录结构:
.-----bash_script
|----app1(git init)
|...various modules
|...error.txt
|...output.txt
|----app2(git init)
|...various modules
|...error.txt
|...output.txt
在bash_script:$目录包含(APP1或APP2 ...它在一个循环中被调用)
cd "${directory}" && git checkout master && git pull origin master >> output.txt 2>>error.txt
cd ..
以上两行被称为为每应用程序。 这是我迄今所做
问题:
我只得到
stdout/stderr
只为我的最后一个命令即从原产和结账不拉。是否可以在每个&&
之前得到整个命令的输出而无需写入文件名?那么如何在应用程序目录内部生成error.txt/output.txt文件。我怎样才能在bash_script目录中生成它们,即上一层。
当执行GIT中拉原点主
From http://gitProjectUrl branch master -> FETCH_HEAD
上述线在error.txt重定向。
Already up-to-date.
而此行是在output.txt的重定向
为什么两条线不是output.txt的?
我想这是更好地去'{}'过'()'当可能的,但子shell的一个很好的副作用是,有没有必要之后改变目录。 –
是的,但通常'cd -'会照顾它并且分壳子有比这更多的副作用。 – anubhava