kshのechoで改行を制御

サラトガIT日記 > Linux(UNIX) > kshのechoで改行を制御 kshのechoで改行を制御

※実経験の記憶を頼りに自宅の PC 環境(VMWareなど)で再現している内容もあるのでご注意下さい

2008-07-11

 

ksh で改行しないように echo の -n オプションを使ってみましたが、どうやら -n オプションはサポートされていないようです。例えばスクリプトで処理を実行して、処理が完了したら OK を表示したいようなプログラムはどうやって書けばいいでしょうか。インストールなどによくある下記のようなコンソール表示です。

START |#
↓
START |#####
↓
START |################################### | OK

よくよく調べてみると、\c を使うことで改行を制御できるようです。エスケープシーケンスが用意されているのですね。これで問題解決ですが、間違って -n 書いちゃいそうだな(笑)他のエスケープシーケンスも一部紹介しておきます。

\a : 警告文字
\b : バックスペース
\c : 復帰改行なしで行を出力
\n : 復帰改行
\t : タブ
\\ : バックスラッシュ

FreeBSD の csh の実行例と合わせて、ksh の実行例も書いておきます。コンソールで実行したので、スクリプトで書くときは無理して 1 行でコマンドを書く必要はありません。

[csh(FreeBSD)]
$ echo -n "sara";echo "toga"

saratoga

[ksh(UNIX)]
$ echo "sara\c";echo "toga"

saratoga

関連記事

上記の記事に関連する記事(最新の10件)です。