【发布时间】:2019-03-18 00:31:31
【问题描述】:
我的任务是将包含 Shell 脚本、Perl 代码的 Shell 脚本转换为 Python。
我设法将 Perl 代码转换为 Python。
但是有这个shell脚本语句我没看懂。
#! /usr/bin/sh
exec ${PERL-perl} -Sx $0 ${1+"$@"}
#! /opt/tools/perl5/bin/perl
Some Perl code which I converted to Python
第二行是什么意思?
我知道$0 将被评估为脚本名称。
我假设${PERL-perl} 将评估机器上安装的任何 Perl 解释器(如果我错了请纠正我,也请让我知道如何为 Python 提及类似的事情)。
有人能解释一下exec 命令中剩余的参数是做什么的吗?
【问题讨论】:
-
脚本在执行时会做什么?如果您没有运行脚本来比较结果,如何验证您是否正确转换了代码?
-
如何在 shell 脚本中运行 Python 解释器而不是 Perl。在
exec命令之后有没有类似${PYTHON-python}的内容? -
在阅读了一些关于
perl的-S和-x选项之后,如果将脚本转换为Python,您确定保留这些行有意义吗?这实际上是关于启动一个 Perl 脚本,而你已经摆脱了它。你不能用#!/usr/bin/env python3或类似的东西替换前三行吗?
标签: python python-3.x shell perl scripting