当前位置: 首页 > 图灵资讯 > 行业资讯> python和shell像吗

python和shell像吗

发布时间:2025-05-04 10:35:11

python和shell是我们经常使用的脚本语言。通常,python主要用于编写一些小任务,而shell更多地用于使用liunx系统部署任务。由于它们之间存在一些相似之处,因此在很长一段时间内很容易混淆,因此我们在这里介绍它们之间的用法差异。

变量

python的定义和使用只需使用变量名,例如:

var=“hello”
printvar
#hello

shell定义变量只需要变量名,而使用变量的值需要增加$符号,例如:

var="hello"
echo$var
#hello

数组的定义

python中没有数组的概念,但有list,tuple,dict等可以替代其功能,声明list并使用其中一个元素,如下:

numbers=[1,2,3,4,5]
printnumbers[0]
#1

shell中只有一维数组,其声明和使用方法如下:

numbers=(12345)
print${numbers[0]}
#1
#返回所有值
print${numbers[*]}
#12345

注释

python和shell都可以用#号添加单行注释,python可以用“注释”添加多行注释。

相关推荐:Python基础教程

逻辑判断

条件的定义

在python中,除所有被认为是False的空值外,所有的值都被解释为真正的True,其中包括:None,“,(),{},[]和False,以下是例子。

比较支持其他比较操作符,其中比较特殊的操作符包括:

* x is y x和y是同一个对象

* x is not y

* x in y x在y集合中

* x not in y

and用于逻辑预算法,or,not.

shell的概念非常不同,它使用test命令进行条件测试,它通常被写成[ condition ]注意方括号两侧有空格,支持三种测试:

* 比较数值,需要使用-eq,-用gt代替==,>

* 对比字符串,可以使用=,需要使用-n等短命令,如-n str判断str长度是否非零

* 比较文件需要短命令,比如-e file判断文件是否存在

逻辑运算符&&,||连接不同的[ condition ]

此外,建议使用先进的数学表达式(( expression ))逻辑判断可以使用自增++,位移运算符<<,位运算符&,逻辑与&&等等

判断使用高级字符串的使用情况[[ expression ]]逻辑判断可以类似于正则表达式[[ $teststr== r* ]]判断r开头的字符串

推荐使用shell的数值运算$[expression]echo用于计算浮点数 “expression”| bc获取计算值的方法

if else

if在python中的if else的使用方法如下,条件句后加冒号,缩进分句块

ifcondition:
statement
elifcondition:
statement
else:
statement

它的ifell不同于shell 使用else的方法如下,它使用then和elseif或fi来定义句子块,理论上不需要缩进

if[condtion]
then
statement
elif[condtion]
then
statement
else
statement
fi

for循环

python的for回收如下,仍然使用缩进来划分句块。

foriteminsequence:
statement

for在shell中的使用方法相似

foriteminlist
do
statement
done

Shell取item的分隔符全局变量为IFS(internal field separator),其默认值为空格、制表符、换行符,因此如果需要按行处理而忽略空格,则需要更改IFS值。

此外,shell还支持c语言形式的for循环,采用双小括号完成,形式如下:

for((i=1;i<=10;i++))
do
statement
done

while循环

whilepython的写作方法如下:

whilecondition:
statement

shellwhile写法如下:

while[conditon]
do
statement
done

异常处理

python的异常处理方法

try:
statement
except:
statement
finally:
finalStatement

shell中没有相应的异常处理机制,只有每个命名的错误输出描述符2,可以通过2>&将错误输出重定向标准输出

文件操作

python使用open函数,有读写模式,只读r,只写w,添加apen

myfile=open("filename","r")
myfile.readlines()
myfile.close()
withopen("finename","w")asmyfile:
myfile.write("line\n")

使用命令阅读shell阅读文件的内容,然后使用管道或重定向输入。常用的命令包括:

1. cat filename 阅读文件的全部内容

2. tail -n 2 filename读取最后两行

3. head -n 2 前两行读读前两行filename

阅读文件中的每一行处理一个经典问题,使用python非常简单。

withopen("filename","r")asmyfile:
forlineinmyfile.readlines():
printline

使用shell

catfilename|whilereadline
do
echo$line
done
#或者
IFS='\n'
forlinein`catfilename`
do
echo$line
done

函数

python的函数形式如下:

deffunctionname(params):
'函数文档'
statement
returnvalue

通过functioname,函数文档可以通过.doc获得

shell中函数形式

functionfunctionname{
commands
returnvalue
}

通过函数functionname,使用变量获取返回值 param1 第一个和第二个参数通过$1和$2的方式传递,$#是参数数量,$*是所有参数。

相关文章

如何让vim支持python3

如何让vim支持python3

2025-09-12
python2.7和3.6区别有哪些

python2.7和3.6区别有哪些

2025-09-12
python3有serial库吗

python3有serial库吗

2025-09-12
python中w、r表示什么意思

python中w、r表示什么意思

2025-09-12
python中如何把list变成字符串

python中如何把list变成字符串

2025-09-12
python命名空间是什么

python命名空间是什么

2025-09-12