簡體   English   中英

Perl - 系統命令打印到終端?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM