![git commit hash id의 처음 5자를 가져와 bash의 변수에 저장하는 방법은 무엇입니까?](https://linux55.com/image/86306/git%20commit%20hash%20id%EC%9D%98%20%EC%B2%98%EC%9D%8C%205%EC%9E%90%EB%A5%BC%20%EA%B0%80%EC%A0%B8%EC%99%80%20bash%EC%9D%98%20%EB%B3%80%EC%88%98%EC%97%90%20%EC%A0%80%EC%9E%A5%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
${$(git rev-parse HEAD):0:5}
bash: ${$(git rev-parse HEAD):0:5}: bad substitution
git rev-parse HEAD
해시 ID를 반환하지만, 여기서 하위 문자열을 어떻게 생성합니까?
두 줄로 나누면 잘 작동합니다.
x=$(git rev-parse HEAD)
echo ${x:0:5}
그런데 한 줄로 어떻게 할 수 있나요?
답변1
사용 --short
옵션:
$ git rev-parse --short=5 HEAD
90752
$ x=$(git rev-parse --short=5 HEAD)
$ printf '%s\n' "$x"
90752
답변2
cut 유틸리티는 원하는 작업을 수행해야 합니다.
$ x=$(git rev-parse HEAD | cut -c1-5) && echo $x
왜 스레드인가?