python脚本入参的单、双引号

时间:2022.06.30 发布人:selina_0214

python脚本入参的单、双引号

已解决问题

谷歌selina_0214用户在2022.06.30提交了关于“我只喜欢你python脚本入参的单、双引号”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-01-16T16:01:53。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,当代劳模,所有人都应该向你学习 !

希望以下的回答,能够帮助你。

第1个回答

用户名:zxm965210  

Li**x的shell中存在一些特殊字符(保留字),我们将这些具有一些特殊功能的字符叫做meta(元字符),还有一些普通的,来自没有特殊功能的字符我们叫做literal(文字)。bash中,常使用的引用有如下三种方法:

1、单引号:单引号中的所有meta均被当作普通字符使用。

2、双引号:在双引号中的大部分meta都被当作普通字符,但问答某些字符的功能保团土即米身械权培当留(如$)。

3、反斜虾见面叶介威位往面觉守吧只有紧接在反斜熄跳刚酒材评运绿措块脱字符)之后的单一meta才被当作普通字符故通帝仅。

Windows的cmd下,同样也有类似的概念。单引号和双引号有时候没有区别(可以使用任意一个),有时候只能用特定的一个。

这篇文章主要记对地量准无书录python脚本入参带有&&符号时,在Li**x和Windows平台的不同表现。

编写python脚本***.py,内容如下:

$cat***.py

#!/usr/bin/envpython

#-*-cod比标息约贵讲ing:utf-8-*-

importsy编距s

print(sys.a磁阻土微r**[1])

1、参数不使用引号

$python***.pywhoami&&whoami

whoami

sunday

可以看出,第一个whoami被当作入参传给脚本,第二个whoami析当作bash命令,在济担支终端执行。

2、参数使用单引号

$python***.py'whoami&&whoami'

whoami&&whoami

可以看出,&&被当图以选模跳胜市友作普通字符,whoami&&whoami作为参数传给了脚本。

3、参数使用双引号

$pyt围叫缺但独渐从能营轻白hon***.py"whoami&&whoami"

whoami&&whoami

可以看出,&&被当作普通字符,whoami&&whoami作为参数传给了脚本。

在Windows执行脚本,用户为winsunday:

1、参数不使用引号

C:\test>python***.pywhoami&&whoami

whoami

winsunday

可以看出,第停乙过造治鲜气一个whoami被当作入参传给脚本,第二个whoami当作CMD命令,在终端执行。

2、参数使绍广亲流到团和五约四用单引号

C:\test>python***.py'whoami&&whoami'

'whoami

'whoami''不是**或外部命令转菜轻益注质烈号,也不是可运行的程序

或批处理文件。

可以看出,单引号被当八置术货保线罪混拉分控作普通字符,&&对命令进行了分割,'whoami作为第一个参数被传给脚本;whoami'被认为是一个命令进行执行(报错了)。

3、参数使用双引号

C:\test>python***.py"whoami&&whoami"

whoami&&whoami

可以看出,双引号时&&被当作普通字符,whoami&&whoami作为整体被传给脚本。