# 줄바꿈(\n)이 없는 한줄 문자열을 출력할때 보이지 않는 문제가 있다.
# 다음과 같이 \n 없이 실행하면 문자열이 출력되지 않는다.
# -n(newline 없이 출력)옵션을 사용하면 출력되지 않는다.
echo -n "ysoftman"
# c 테스트 코드(bash 에서는 ! 를 빼자)
# 명시적으로 flush 해도 출력되지 않는다.
echo -e "#include <stdio.h> \n int main() { printf(\"abcdefg\"); fflush(stdout); return 0;}" >! zz.c && gcc zz.c && ./a.out
# go 테스트 코드
echo -e "package main\n
import \"fmt\"\n
func main(){\n
fmt.Print(\"AA\")\n
}" >! zz.go && go run zz.go
# 위 명령어 뒤에 && echo 하면 제대로 나온다.
# curl로 1줄짜리 응답을 받는 경우에도 똑같은 상황이다.
# oh-my-zsh, bash 환경에서는 문제가 없고, 다른 서버의 prezto 에서도 잘된다.
# 원인은 no_prompt_cr (prompt_cr 사용하지 않는다는 의미) 설정해 발생한다.
setopt no_prompt_cr
# prompt_cr 은 zsh 에서 사용하는 옵션으로 cr(carriage return) 을 출력한다.
http://zsh.sourceforge.net/Doc/Release/Options.html#index-NO_005fPROMPT_005fCR
# 다시 prompt_cr 을 사용하면 임시로 되긴 한다.
setopt prompt_cr
# 그런데 같은 이슈가 등록되어 있었고, 이미 해결된 상태다.
https://github.com/sorin-ionescu/prezto/issues/1473
https://github.com/sorin-ionescu/prezto/issues/1426
# 해결은 최신 zprezto 를 설치하면 된다는것.
# prezto 설치 스크립트로 다시 설치하자 상황종료~
https://github.com/ysoftman/myenv
zsh ./installprezto.zsh
comments:
댓글 쓰기