2016-03-31 3 views
1

多くのxtermでは、ウィンドウ境界に一意の名前を付けることができます。別名に続いてエスケープコードを出力してエコーコードを残すことはできません。-n ""

#!/usr/bin/perl 
my $saywhat = $ARGV[0]; 

my $mycmnd = <<"EOLzippo"; 
echo -n "\033]0;XROSS\007" 

EOLzippo 

$mycmnd =~ s!XROSS!$saywhat!g; 

print $mycmnd; 

:だから私は、ファイルheader.plでこのperlのコードを書いた

alias header 'perl ~/perl/header.pl \!* ' 

私は私のxtermの上部にあるテキストを変更することができます。エイリアスはコードと呼ばれる

は私のコマンドラインにエコー-Nの葉:

163 perl> header test 

echo -n "" 

エコー-n「」残さずに印刷を実行する方法はありますか?

答えて

3

エコーを印刷する必要はありません(シェルしてエコーしましたか?)。 printは既に印刷されています。

#!/usr/bin/perl 
use warnings; 
use strict; 

my $saywhat = shift; 
my $string = "\033]0;$saywhat\007"; 
print $string; 
+0

'' \ 033 ''' \ e "' '\ 007" '' '\ a" ' – Borodin

+1

He *はそうではありません*砲撃する。彼はちょうど(非常に複雑な方法で) 'echo -n" を印刷しています。 xtermはエスケープコードを解釈します。残りは印刷可能な文字だけです。 – cjm

1

それをPerlですべてを行います

#!/usr/bin/perl 
my $saywhat = $ARGV[0]; 

my $mycmnd = "\033]0;${saywhat}\007" 

print $mycmnd; 

サイドノート:をそれは時々.pl接尾辞を使用するための慣習ですが、それはノーであることは必須意味。 header.plの名前をheaderに変更して~/bin [~/perl$PATH]と入力すると、aliasが削除されます。ファイルに実行権限を設定してください(例:755

関連する問題