반응형
Bash 펼쳐지는 명령 출력을 변수에 저장합니다.
bash 내의 내부 변수 내부에 명령 출력을 저장하는 데 문제가 있습니다.
일반적으로 두 가지 방법이 있음을 알고 있습니다.
어느 한 쪽
foo=$(bar)
# or
foo=`bar`
그러나 Java 버전 쿼리의 경우 작동하지 않는 것입니다.
나는했다 :
version=$(java --version)
이 var 안에 값을 저장하지 않습니다. 그것은 여전히 그것을 인쇄합니다.
또한 시도를 파일로 시도했지만 실패합니다.
version=$(java -version 2>&1)
버전 매개 변수는 대시 하나만 사용하며 메시지가 기록되는 stderr을 리디렉션하면 원하는 결과를 얻을 수 있습니다.
부수적으로 두 개의 대시를 사용하는 것은 Unix와 같은 시스템에서 비공식적 인 표준이지만 Java는 서로 다른 플랫폼에서 거의 동일하려고하기 때문에 Unix / Linux- 기대를 사용하고 Windows에서 동일하게 작동합니다. Mac OS에서 용의자.
즉 때문이다 java -version
쓰기로 stderr
하지 stdout
. 다음을 무시합니다.
version=$(java -version 2>&1)
로 리디렉션 stderr
생성 stdout
.
다음 두 명령을 실행하여 확인할 수 있습니다.
java -version > /dev/null
java -version 2> /dev/null
참조 URL : https://stackoverflow.com/questions/9768228/bash-script-store-command-output-into-variable
반응형
'ProgramingTip' 카테고리의 다른 글
메타 클래스 다중 상속 불일치 (0) | 2020.12.25 |
---|---|
하위 디렉토리 및 Makefile (0) | 2020.12.25 |
CSS Z- 색인이 작동하지 발생 (절대 위치) (0) | 2020.12.25 |
"rimraf"가 무엇을 의미하는지 아는 사람이 있습니까? (0) | 2020.12.25 |
원인 :“알림 : 초기화되지 않은 것”이 나타 납니까? (0) | 2020.12.25 |