Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux perl和bash变量替换,使用十六进制字符和重复计数_Linux_Bash_Perl_Command Line - Fatal编程技术网

Linux perl和bash变量替换,使用十六进制字符和重复计数

Linux perl和bash变量替换,使用十六进制字符和重复计数,linux,bash,perl,command-line,Linux,Bash,Perl,Command Line,是否可以在第二个perl命令中获得相同的输出?我找不到使用I作为重复计数的正确语法。必须转义内部双引号,并在shell中使用双引号进行变量扩展: alex@d120432:~$ echo $0 bash alex@d120432:~$ perl -e 'print "\x41\x42\x43\x44\x0a"x2' ABCD ABCD alex@d120432:~$ i=2 alex@d120432:~$ echo $i 2 alex@d120432:~$ perl -e 'print "\x4

是否可以在第二个perl命令中获得相同的输出?我找不到使用I作为重复计数的正确语法。

必须转义内部双引号,并在shell中使用双引号进行变量扩展:

alex@d120432:~$ echo $0
bash
alex@d120432:~$ perl -e 'print "\x41\x42\x43\x44\x0a"x2'
ABCD
ABCD
alex@d120432:~$ i=2
alex@d120432:~$ echo $i
2
alex@d120432:~$ perl -e 'print "\x41\x42\x43\x44\x0a" x $i'
alex@d120432:~$
以下变体也可能起作用:

ABCD
ABCD

您必须转义内部双引号,并在shell中使用双引号进行变量扩展:

alex@d120432:~$ echo $0
bash
alex@d120432:~$ perl -e 'print "\x41\x42\x43\x44\x0a"x2'
ABCD
ABCD
alex@d120432:~$ i=2
alex@d120432:~$ echo $i
2
alex@d120432:~$ perl -e 'print "\x41\x42\x43\x44\x0a" x $i'
alex@d120432:~$
以下变体也可能起作用:

ABCD
ABCD

Perl使用双引号进行插值,就像shell一样,Perl提供qq{}

{}分隔符可以是任意一对。使用这种结构可以消除在所描述的情况下转义引号字符的需要;例如:

perl -e 'print "\x41\x42\x43\x44\x0a" x '$i

Perl使用双引号进行插值,就像shell一样,Perl提供qq{}

{}分隔符可以是任意一对。使用这种结构可以消除在所描述的情况下转义引号字符的需要;例如:

perl -e 'print "\x41\x42\x43\x44\x0a" x '$i
perl-e print\\x41\x42\x43\x44\x0a\x$i应该可以工作perl-e print\\x41\x42\x43\x44\x0a\x$i应该可以工作