Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.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
Python 从shell脚本执行.py脚本,为什么$1是神奇的解决方案?_Python_Shell_Cygwin - Fatal编程技术网

Python 从shell脚本执行.py脚本,为什么$1是神奇的解决方案?

Python 从shell脚本执行.py脚本,为什么$1是神奇的解决方案?,python,shell,cygwin,Python,Shell,Cygwin,我有一个python脚本,我一直在尝试在cygwin shell脚本中自动执行。.py脚本包含一个接受某些参数的函数,但这些参数是在.py脚本中定义的 在谷歌搜索了几个小时并在阳光下尝试了一切之后,这就是最终的效果: python email_script.py $1 如果我使用下面的代码,即使使用完整的文件路径和.py脚本中的shebang: python email_script.py 我会得到这个错误 [Errno 22] Invalid argument.exe: can't ope

我有一个python脚本,我一直在尝试在cygwin shell脚本中自动执行。.py脚本包含一个接受某些参数的函数,但这些参数是在.py脚本中定义的

在谷歌搜索了几个小时并在阳光下尝试了一切之后,这就是最终的效果:

python email_script.py $1
如果我使用下面的代码,即使使用完整的文件路径和.py脚本中的shebang:

python email_script.py
我会得到这个错误

[Errno 22] Invalid argument.exe: can't open file 'email_script.py

为什么$1起作用?

不确定,但可能是文件中的行尾问题。我猜该行以DOS lineendings结尾,cygwin bash将回车符视为文件名的一部分,因此“email_script.py”被视为email_script.py\r。在第二个版本中,回车符“属于”“到
$1
。我建议尝试使用Unix LineEnds保存脚本。以
'email\u script.py
结尾的错误mesage(注意缺少第二个引号)可能暗示在.py之后有一个换行符,bash认为该字符是文件名的一部分。Lars写的。如果您使用的是Cygwin,请确保使用仅以UNIX行结尾保存的文件编辑器。如果您确实想查看,还可以轻松地将文件转储到十六进制编辑器中,自己查看。