我正在编写一个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
Run Code Online (Sandbox Code Playgroud)
谢谢
我想象-n并-e得到回应,因为您的版本echo不识别这些选项并将它们视为文字文本以回应.
但是你知道吗,Perl有自己的用于回显文本的工具:print.
print("\033]0;$title\007");
Run Code Online (Sandbox Code Playgroud)
您可能需要在之后刷新缓冲区:
use IO::Handle qw( );
STDOUT->flush();
Run Code Online (Sandbox Code Playgroud)
如果你不介意关闭缓冲,或者只是以下内容:
$| = 1;
Run Code Online (Sandbox Code Playgroud)
PS - 你的引号(''echo ...'')毫无意义,但它们会陷入虚无,所以它们不会引起问题.
| 归档时间: |
|
| 查看次数: |
10227 次 |
| 最近记录: |