はじめに

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

なにがあったの

Screenshot_2019-02-15 22.17.01_xP8zzN.png
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側で最後に改行をしてあげるとこう
func main() {
    str := "text"
    fmt.Println(str)
}
Screenshot_2019-02-15 22.19.14_GpBbY4.png

なるほどね?

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
广告
将在 10 秒后关闭
bannerAds