readシェルではパイプを利用して標準入力から文字列を読み込み、標準出力へ出力することが多いですが、CLIではオプションや引数でファイル名を渡し、直接ファイルを読み込むこともあります。Go言語でそのようなパターンをサポートするときに皆さんどうやって書いているのか気になったので、自分のテンプレを紹介します。いう名前で適当な文字列が書き込まれているファイルを用意します。いう文字列一行ずつ反転するコマンドを作ったとして、下記の3つのインタフェースを提供したい場合です。沿ってコマンドを定義しているので、大体このようにいつも準備しています。使って標準入力から読み込ませるのはコマンドの意図に合わせてください。ダッシュはコマンドの利用のされ方では標準出力にもなり得るし、使用されないこともあります。コードで表現する冒頭に書いたのと大差ないですが、このように記述しています。設定、そうでない場合はファイルを読み込みます。コマンドの引数が複数あるとかは各々カスタマイズしてください。大体これでいいんじゃないかと思っている。コード全体これは文字列をリバースするとかは実装していないです。受け取った文字列を標準出力に出力しているだけです。ちなみに、正常に標準入力かファイル名が渡ってこない場合は実行待ちになります。実行待ちとならないように工夫もできますが、パイプでコマンドを連鎖させるときは待ちや失敗のような異常系で止まることも重要なので、インタフェース違反が起きたら異常のまま処理をすすめます。やりがちな例だとインタフェース違反をしたときにツール側では空文字列で処理をしてしまうなどをして正常に処理させるような対応はしていないです。UpgradeAboutHelpLegal。