下面的脚本实现了在命令行直接执行perl语句或是执行操作系统命令的功能。
虽然perl的命令行选项 -e可以,但不好用。
操作说明:
在终端执行 perl shell.pl(保存为shell.pl)
有2种模式
1 perl解释器模式
在控制台输入非os:开头的字符串,则该行字符串被当作perl脚本执行,如
$i=3; $j=5; print $i+$5; #按回车后,控制台输出为8
2. 操作系统命令模式
在控制台中输入os:开头,则此模式打开,在此模式下,输入的字符串被当成
操作系统命令执行,例如
os: cat a.txt #此命令就会运行shell的 cat命令,显示 a.txt的内容
注:下面的脚本只对单行输入有效,换行后,该行字符被当作输入进行解释,
即每按动一次回车键(换行),命令就被解释一次。
另外,更改当前目录的操作也没有实现
while(<>){ chomp; if(/^os\:/i){ s/os\://; system $_; } else{ exit 0 if /^(exit|quit)$/i; eval $_; } print "\n"; }