|
自己总结的shell、perl和python的简单对比,欢迎交流! 【输出】Shell:echo "hello,world"Perl:print “hello,world”Python:print "hello,world"【变量定义】Shell:name=oudemen echo $nameperl: $name 标量 print $name
@names 数组%name 哈希变量Python:name=oudemen Print name name=[] 普通链表,元素可变name=()固定数组,元素个数不可变name={m,n} 哈希数组【子程序/函数】Shell: function 函数名()
{ 语句块;
Return(); } 调用函数名 arg1,agr2,…
perl: sub 子程序名{
my ($参数1,$参数2,$参数3)=@_;
语句块; Return(返回值); } 调用子程序 &子程序名
Python: def 函数名(arg1,arg2,…argn):
……(注意,一定要有缩进[空格或者tab]) …… Return(x) 调用函数 函数名(arg1,arg2,…argn)
【if条件判断】Shell: if [条件表达式]
then 条件为真command
else 条件为假command
fiperl: if(条件表达式)
{ 表达式为真的语句块; } 或者 表达式为真的语句块 if 条件表达式;
或者 条件表达式&&表达式为真的语句块;
if(条件表达式){
条件表达式为真时的语句块; }else{ 条件表达式为假时的语句块; } 或者 条件表达式?表达式1:表达式2 [如果条件表达式为真,执行表达式1,否则执行表达式2]
if(条件表达式1)
{ 条件表达式1为真时的语句块; }elsif(条件表达式2){
条件表达式2为真时的语句块; }elsif(条件表达式3){
条件表达式3为真时的语句块; } …… else{ 所以条件表达式为假时的语句块; }Python: if 条件表达式1:
条件表达式1为真时的语句块
elif 条件表达式2:
条件表达式2为真时的语句块
else:
所以条件表达式为假时的语句块
【unless条件判断】Shell:无perl: unless(条件表达式){
条件表达式为假执行的语句块; } 或者 条件表达式为假执行的语句块 unless (条件表达式);、
或者 条件表达式 || 条件表达式为假执行的语句块
unless(条件表达式){
条件表达式为假时的语句块; }else{ 条件表达式为真时的语句块; }Python:无【循环控制--while】Shell{break跳出循环,continue跳出本次循环}: While[条件表达式]
do 命令行
done perl{ last退出循环,next终止本次循环,适用perl所有循环}:
while(条件表达式){
语句块; } 或者 {语句块}while(判别表达式)
do { 语句块; }while(条件表达式) [跟while相比,do while保证语句块至少执行一次]
Python{break 跳出循环,continue结束本次循环}: While条件表达式:
语句块 else: 语句块【循环控制until】Shell: until 条件表达式
do 条件为假执行的语句块
doneperl: until( 条件表达式)
{ 语句块 } 或者 语句块 until(条件表达式);
do { 语句块; }until(条件表达式)
Python:无【循环控制--for】Shell: for((初始表达式;条件表达式;循环过程运算式));
do 语句块;
Done for i in 文件或数组
do 语句块;
Doneperl: for(初始表达式;条件表达式;循环过程运算式)
{ 语句块; } for 标量(数组变量)
{ 语句块; } for (数组变量)
{ 读取$_,处理数组相关的语句块; } foreach 标量(数组变量)
{ 语句块; } foreach (数组变量)
{ 读取$_,处理数组相关的语句块; }Python: for i in range、数组或者字符串等 语句块(此行要缩进) |
|
|