web-dev-qa-db-ja.com

git commit hash idの最初の5文字を​​取得してbashの変数に格納する方法は?

${$(git rev-parse HEAD):0:5}
bash: ${$(git rev-parse HEAD):0:5}: bad substitution

git rev-parse HEADはハッシュIDを返しますが、それから部分文字列を作成するにはどうすればよいですか?

2行に分割すると機能します。

x=$(git rev-parse HEAD)
echo ${x:0:5}

しかし、どうすれば1行で実行できますか?

5
Shuman

--shortオプションの使用:

$ git rev-parse --short=5 HEAD
90752

$ x=$(git rev-parse --short=5 HEAD)
$ printf '%s\n' "$x"
90752
16
cuonglm

Cutユーティリティはあなたが望むことをするはずです。

$ x=$(git rev-parse HEAD | cut -c1-5) && echo $x

なぜ1行なのか?

3
ebpa