如何正确运行 Perl“单线”命令行脚本?

新手上路,请多包涵

我浏览了许多教程,但我仍然无法弄清楚我做错了什么……我正在尝试下面的代码(在 .pl Perl 文件中,作为可执行文件):

 #!/usr/bin/perl

perl -e 'print "Hello";'

我运行这个脚本并得到:

/home/user1/Desktop/file_backups.pl 的执行由于编译错误而中止。

(我是使用 Perl 调用 Linux 命令行的新手。)

原文由 Rick 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 571
2 个回答

perl 不是 Perl 脚本中的有效命令。如果您将该文件命名为 .sh 脚本,并在 shebang 行上使用 #!/bin/bash ,它会起作用,但编写一个 bash 文件只是为了调用并没有多大意义Perl(为什么不直接调用 Perl?)

既然您提到要与命令行交互,我将在这里提到您可以通过 @ARGV 数组获得 Perl 中的命令行选项。 (参见 perldoc perlvar 。)

原文由 Ether 发布,翻译遵循 CC BY-SA 2.5 许可协议

尝试:

 #!/usr/bin/perl
# This is a comment ~~~
# This script will be run as a Perl script
# since 'perl' isn't a keyword or function in Perl
# something like this must fail:
#
# perl -e 'print "Hello";'
#
# The following should work.

print "Hello"; print " World\n";

或者,如果您希望您的 shell 脚本执行 Perl 代码:

 #!/bin/sh
# That's a Bash script ~~~
# It's just a command line in a file ...

perl -e 'print "Hello World";'

背景: #!解释器指令

当命令被执行时,它被转换为解释器的执行。

原文由 miku 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题