人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

例)
echo "test"?n"test"


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

●質問者: hagix
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● a-kuma3

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


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

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

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

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


2 ● JULY

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?

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ