![](/img/trans.png)
[英]Call system command from perl script printing the output AND storing it into a variable
[英]Perl - system command printing to terminal?
我正在編寫一個Perl腳本,允許我更改終端選項卡的磁貼,但是,每次運行它時,都會在我的終端線上打印“-n -e”。 如果我保留這些選項,只需打印一個空白行。 有沒有什么方法可以在perl中執行系統命令,而且我的終端上沒有顯示任何代碼殘留?
1 #!/usr/bin/perl
2 #sets the title on terminal tabs (mac OSX)
3
4 #use strict;
5 use warnings;
6
7 #sets title of term window to input from user.
8 my $textline="\'echo -n -e \"\\033]0;";
9 $textline = $textline . "@ARGV" . '\007"\'';
10
11 system "\'$textline\'";
12
謝謝
我想-n
和-e
會得到回應,因為你的echo
版本不能識別這些選項並將它們視為文字文本來回顯。
但是你知道嗎,Perl有自己的用於回顯文本的工具: print
。
print("\033]0;$title\007");
您可能需要在之后刷新緩沖區:
use IO::Handle qw( );
STDOUT->flush();
如果你不介意關閉緩沖,或者只是以下內容:
$| = 1;
PS - 你的引語( ''echo ...''
)毫無意義,但它們會陷入虛無,所以它們不會引起問題。
您可以通過“>”和“2>”重定向輸出,也可以使用qx。 例如在qx情況下你可以寫
my $output = qx( $your_command );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.