홈>
이상한 문제가 발생했습니다. git 명령의 출력을 구문 분석하려고합니다. 명령 행에서 git 명령을 실행하면 예상대로 작동합니다 :
$ git log --oneline 32004f
32004f9 (tag: This_is_a_tag,_too, tag: Tag_from_command_line, origin/Project_A, Project_A) Merged
65f6f61 More changes
925f619 (tag: This_is_a_tag) Pulled from remote
(etc.)
그러나 출력을 리디렉션하거나 파이프하려고하면 괄호 안의 내용이 사라집니다.
$ while read -r ; do echo $REPLY; done < <(git log --oneline 32004f)
32004f9 Merged
65f6f61 More changes
925f619 Pulled from remote
[편집 : echo 명령은 문제를 설명하기 위해 엄격하게 사용됩니다. 실제 스크립트는 결과를 파싱 및 처리를 위해 여러 변수로 분할합니다]]
$ git log --oneline 32004f | hexdump -C | head
00000000 33 32 30 30 34 66 39 20 4d 65 72 67 65 64 0a 36 |32004f9 Merged.6|
00000010 35 66 36 66 36 31 20 4d 6f 72 65 20 63 68 61 6e |5f6f61 More chan|
00000020 67 65 73 0a 39 32 35 66 36 31 39 20 50 75 6c 6c |ges.925f619 Pull|
00000030 65 64 20 66 72 6f 6d 20 72 65 6d 6f 74 65 0a 64 |ed from remote.d|
그러나 괄호로 묶은 빠른 셸 스크립트는 잘 작동합니다.
$ cat test.sh
#!/bin/bash
echo "32004f9 (HEAD -> Project_A, tag: This_is_a_tag,_too, tag: Tag_from_command_line, origin /Project_A) Merged"
$ while read -r ; do echo $REPLY; done < <(./test.sh)
32004f9 (HEAD -> Project_A, tag: This_is_a_tag,_too, tag: Tag_from_command_line, origin /Project_A) Merged
저리가 넘어졌다. 누구든지 이것으로 나를 도울 수 있습니까?
배쉬 버전 : GNU bash, 4.4.12 (3) -release (i686-pc-cygwin) 자식 버전 : 자식 버전 2.15.0- 답변 # 1
관련 자료
- Python 프로그래밍에서 다른 출력 얻기
- python - VS 코드 "터미널"은 코드를 실행하지만 "출력"은 실행하지 않습니다
- function - 내 C 코드 추적 및 출력이 다르지만 왜 그런지 잘 모르겠습니다
- windows - DCDIAG가 PowerShell에서 다른 출력을 반환
- python - 터미널에서만 출력을 볼 수 없음
- linux - 두 폴더에서 파일의 차이를 출력하고 같은 이름으로 다른 폴더에 출력을 저장하는 방법
- linux - 다른 스크립트/터미널에서 wlan0 또는 eth0 사용
- C 컴파일 출력 파일 (Linux 커널 모듈)을 소스 파일과 다른 디렉토리에 배치하는 방법 (Makefile 사용)
- c++14 - 컴파일러에 표시되는 출력이 예상 값과 다릅니다 그러나이 값을 Excel에 복사하여 붙여 넣을 때 올바른 값을 얻습니다
- python - 스파이더 터미널에서 내 인터페이스에 분배하는 출력을 어떻게 얻을 수 있습니까? 또한 "데이터"변수에 있습니까?
- Windows 10의 다른 직렬 터미널에 직렬 UART 출력을 입력으로 사용
- static - 로컬 Jekyll 리포지토리 클론은 Github 호스팅 페이지와 다른 출력을 보여줍니다
- bash - 디버그 출력을 터미널 멀티플렉서로 보내기
- python - 동일한 목록이 다른 출력
- sql - 동일한 데이터베이스 - 다른 클라이언트의 다른 출력
- python - Stateful LSTM 모델을위한 TensorFlow 다양한 입력 및 출력 모양
- vim - tmux에서 와이드 터미널 출력보기
- keyboard shortcuts - 과거 터미널 출력에서 일부 텍스트를 탐색하고 복사하려면 어떻게해야합니까?
- SPARK SQL에서 weekofyear와 date_format을 사용하여 다른 출력 얻기
- javascript - ''또는""또는`${}`를 사용하는 JS 함수 다른 출력에 대한 인수
관련 질문
- bash : stdout의 git shell 명령 출력을 대화 상자로 리디렉션하고 stderr을 Cygwin의 var로 리디렉션
- 20.04 : 다르게 동작하는 변수가 있는 에코 출력
- Makefile을 사용하여 Git Bash 셸에서 공유 라이브러리 생성 실패
- python : .bashrc 및 Git Bash 터미널을 사용하여 Windows OS에서 $PATH 사용자 지정
- bash : cygwin으로 Windows 디렉토리 반복
- Git 2.34.1: 프로필이 로드되지 않은 상태에서 bash에서 커밋할 때 "치명적인: 모호한 인수 'HEAD': 알 수 없음" 오류
- Git Bash 터미널에 EOF 신호를 보내려면 어떻게 해야 합니까?
- git : 사용자 정의 예쁜 로그 형식으로 모든 새 줄에 탭을 추가하는 방법은 무엇입니까?
- Windows git bash: git clone https://github.com/... 치명적 결과: 작업 트리 ''이(가) 이미 존재합니다.
- 긴 명령에 대한 bash 별칭 또는 함수를 만들 수 없습니다.
와이즈 비즈 확인
와이즈 비즈 와이즈 비즈--decorate
옵션 :표시된 커밋의 참조 이름을 인쇄하십시오. 만약
git log
참조 이름 앞에full
가있는 것 같습니다 자식 설정의 어딘가에 설정하십시오.레퍼런스 이름 (태그 포함)을 강제 실행하려면 다음을 지정하십시오.
short