我的缩进是有一个脚本,根据给定的分支更新所有 git 子模块。如果子模块没有这样的分支,则使用 master。
这就是我现在所拥有的:
#!/bin/bash -x
if [ -z $1 ]; then
echo "Branch name required."
exit
fi
function pbranch {
exists=`git show-ref refs/heads/$branch`
if [ -z $exists ]; then
branch="master"
fi
git co $branch
git pull origin $branch
}
branch=$1
git submodule foreach pbranch
Run Code Online (Sandbox Code Playgroud)
但是在运行这个脚本时,会抛出错误:
oleq@pc ~/project> git-fetchmodules major
+ '[' -z major ']'
+ branch=major
+ git submodule foreach pbranch
Entering 'submodule'
/usr/lib/git-core/git-submodule: 1: eval: pbranch: not found
Stopping at 'submodule'; script returned non-zero status.
Run Code Online (Sandbox Code Playgroud)
我的猜测是git …
我喜欢使用以下模式在文件中搜索:
grep --color=auto -iRnHr --include={*.js,*.html,} --exclude-dir={release,dev,} "span" .
Run Code Online (Sandbox Code Playgroud)
然而,我想把这个包装成一个像这样的 bash 命令:
findinfiles {*.js,*.html,} {release,dev,} "span" // syntax is just a guessing
Run Code Online (Sandbox Code Playgroud)
我无法解决将这些类型的大括号传递给 bash 函数并将它们与$1
,$2
等一起使用的问题。当我使用以下内容时:
function findinfiles() {
echo $1, $2, $3
}
Run Code Online (Sandbox Code Playgroud)
然后:
me@pc ~> findinfiles {*.js,*.html,} {release,dev,} "span"
*.js, *.html, release
Run Code Online (Sandbox Code Playgroud)
当然,将参数传递给 grep 不会以这种方式工作。似乎参数已编入索引但未正确分组。
谁能教我如何处理这些争论?