17
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

zshの出力の最後に追記される謎の文字の話(パーセント)

Last updated at Posted at 2019-02-15

はじめに

先日DonutsさんのGo言語勉強会に参加した際に、golangの出力結果に謎の文字が出力されてそれについて唸ったので原因と解決方法をば。

なにがあったの

golangの出力結果に謎の文字(% percent パーセント記号)が出力された。
Screenshot_2019-02-15 22.17.01_xP8zzN.png
該当コード

hoge.go
package main

import "fmt"

func main() {
	str := "text"
	fmt.Print(str)
}

原因と解決方法

zshは出力結果の最後が改行されていない場合、zsh側で自動的に改行を行ってくれる。
そして、その際に勝手に改行したことを示す記号として%が出力される。

試しにbashで同じコードを実行してみるとこう
Screenshot_2019-02-15 21.56.10_XaUMoD.png

zshとは違い自動的に改行されていないのがわかる。

試しにgolang側で最後に改行をしてあげるとこう
hoge.go
func main() {
    str := "text"
    fmt.Println(str)
}
Screenshot_2019-02-15 22.19.14_GpBbY4.png

なるほどね?

このzshが勝手に出力してくれる文字列は$PROMPT_EOL_MARKという環境変数で任意に設定できる。
Screenshot_2019-02-15 22.03.56_DdM2Ps.png

良いですね。

表示したくないと思った場合はこんな感じに.zshrcに

export PROMPT_EOL_MARK=''

空文字を設定してあげれば大丈夫です。

現状

Screenshot_2019-02-15 22.07.59_QSipba.png Screenshot_2019-02-15 22.08.43_t84i0X.png
17
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?