0
customfetch = !git fetch -r `wget -qO - http://hudson/url_to_project/lastStableBuild/ | gawk 'c&&!--c;/Revision:/{c=1}' | sed -ne 's/<.*//p' | sed -ne 's/\s//p'`

git svn fetch -rhudsen で報告された最後の安定版ビルドの svn リビジョン番号に対応する git のエイリアスを作成したいと考えています。ページをダウンロードし、リビジョン番号を解析して、そのリビジョン番号を取得しようとします。リビジョン番号を取得するコマンドは正常に機能しますが、エイリアスを作成しようとすると失敗します。

git svn fetch -r `wget -qO - http://hudson/url_to_project/lastStableBuild/ | gawk 'c&&!--c: -c: line 0: unexpected EOF while looking for matching `''
git svn fetch -r `wget -qO - http://hudson/url_to_project/lastStableBuild/ | gawk 'c&&!--c: -c: line 1: syntax error: unexpected end of file

開いているバックティックを閉じて、開いているものをすべて閉じているため、コマンドの何が問題なのかわかりません'

どうすればそれを機能させることができますか?

4

2 に答える 2

1

文字列は実際には bash シェルで評価されるため、混乱を減らすために、代わりに単一の文字列として配置することをお勧めします。

customfetch = ! "git fetch -r \"$(wget -qO - http://hudson/url_to_project/lastStableBuild/ | gawk \"c&&!--c;/Revision:/{c=1}\" | sed -ne \"s/<.*//p\" | sed -ne \"s/\\s//p\")\""

git fetchそれでもエラーが発生しますが、それはより具体的にはあなたの引数にすでに関連しています-r

また、sed -ne \"s/\\s//p\"実際に である必要があるかどうかもわかりませんsed -ne \"s/\\\\s//p\"。テストしてください。

于 2013-08-13T09:53:00.840 に答える
0

おそらく、関数を作成したいですか?

function customfetch {
    git fetch -r "$(wget -qO - http://hudson/url_to_project/lastStableBuild/ | gawk 'c&&!--c;/Revision:/{c=1}' | sed -ne 's/<.*//p' | sed -ne 's/\s//p')"
}

そして、私は何があったのかわからない! !git for..

`` よりも $() を使用する方が再帰が簡単なので、 $() を "" の周りに配置して、$IFS での複数の引数への意図しない拡張を防ぐこともお勧めします。

于 2013-08-13T08:41:31.093 に答える