cshの組み込みコマンドechoにて、¥nを改行コードとして扱いたいです。


例)
echo "test"¥n"test"


test
test
と表示したいです。
bashは利用できないため、cshで実現したいのですが、何かいい方法はないでしょうか?

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/09/23 00:30:04

回答2件)

id:a-kuma3 No.1

回答回数4974ベストアンサー獲得回数2154

組み込みの echo は \n を改行とは解釈してくれないので、こんな方法を使うことになるかと。


# 改行をバックスラッシュでエスケープする
echo "hoge\
fuga"

# printf コマンドを使う
printf "hoge\nfuga\n"

# ヒアドキュメントを使う
echo <<MESSAGE
hoge
fuga
MESSAGE

# 外部コマンドの echo を明示的に使う
/usr/bin/echo "hoge\nfuga"

id:JULY No.2

回答回数966ベストアンサー獲得回数247

cshの組み込みコマンドechoにて、\nを改行コードとして扱いたいです。

「csh 組み込みの echo」は必須条件ですか? 必須で無ければ、

/bin/echo -e "test\ntest"

として、外部コマンドの echo を使うとか。ただ、「-e」を付けるのは、GNU coreutils の流儀なので、Solaris と HP-UX とかだと、そもそも「-e」は不要かもしれません。

# 多分、Solaris は -e 不要でパスは /usr/bin/echo のはず。

あと、純粋な csh じゃなくて、「csh として起動しているけど、実体は tcsh」であれば、

set echo_style=sysv

とした後であれば、「echo "test\ntest"」にすれば、お望みの結果になりますが、おそらく、純粋な csh には echo_style という変数自体が無いはずです。

ところで、OS は? Solaris の man page (csh(1))とか、tcsh の echo_style の記述を読むと、SystemV 系なら、改行されるのが普通っぽいですが、BSD 系? MacOS?

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません