Mac 上使用 Perl 的 Bash 错误消息

Mac 上使用 Perl 的 Bash 错误消息

我尝试在 Perl (Mac) 上运行基本功能,但总是收到相同的错误消息。我设法运行像简单的“hello,world”示例这样的程序。他们工作得很好:

$ perl -w hello.pl
Hello World

但是当我尝试不同的事情时,例如为变量赋值,它会给我一条消息,例如:

$number = 13*2;
-bash: =: command not found

list 等命令似乎可以工作,但我总是收到 bash 错误。我读到它可能与路径相关,但不确定如何准确验证这一点以及 bash 在这里做什么。

答案1

您似乎将 bash 与 perl 混淆了。 Mac 上的默认 shell 是 bash,它无法以与 perl 相同的方式或使用相同的语法设置变量。要使用 perl 在 bash CLI 上将名为“$number”的变量设置为“13 * 2”的结果,您可以:

my-macbook:~ $ perl -e '$number = 13 * 2; print $number, "\n";'
26

要在 bash 本身中执行相同的操作,您可以:

my-macbook:~ $ number=$(expr 13 \* 2); echo $number
26

您无法将原始 perl 语法放入终端中的 bash shell 中,因为在终端中运行的 bash shell 需要 bash 语法。 Bash 本身就是一门完整的语言,与 perl 不兼容。要告诉 bash 您想使用 perl 而不是 bash 执行某些代码,您可以使用 Perl 的-e标志(如 e 中表示执行),然后将 Perl 代码用单引号括起来。

答案2

要在(终端仿真器内运行的 shell)中进行基本算术bash,您可以使用以下结构之一。前缀在获取变量值时$与变量一起使用,而不是在赋值时使用:bash

my_product=$(( 13 * 2 ))
my_product=$[ 13 * 2 ]
echo $my_product

正如已经声明的那样,perl并非bash如此,因此您必须确保使用正确的语法和正确的语言。

相关内容