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의 기본 셸은 bash이며, 이는 Perl과 동일한 방식이나 동일한 구문으로 변수를 설정할 수 없습니다. Perl을 사용하여 bash CLI에서 "13 * 2"의 결과로 "$number"라는 변수를 설정하려면 다음을 수행할 수 있습니다.

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

Bash 자체에서도 동일한 작업을 수행하려면 다음을 수행할 수 있습니다.

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

터미널에서 실행되는 bash 쉘에는 bash 구문이 필요하기 때문에 원시 perl 구문을 터미널의 bash 쉘에 넣을 수 없습니다. Bash는 그 자체로 완전한 언어이며 Perl과 호환되지 않습니다. 특정 코드를 실행하기 위해 bash 대신 perl을 사용하고 싶다고 bash에 알리려면 Perl의 -e플래그(예: 실행을 위한 e)를 사용한 다음 Perl 코드를 작은따옴표로 묶을 수 있습니다.

답변2

터미널 에뮬레이터 내에서 실행되는 셸에서 기본 산술 연산을 수행하려면 bash다음 구성 중 하나를 사용할 수 있습니다. 접두사는 값을 $할당할 때가 아니라 값을 가져올 때 변수와 함께 사용됩니다 .bash

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

이미 언급한 바와 같이 이는 사실 perl이 아니므 bash로 올바른 구문과 올바른 언어를 사용하는지 확인해야 합니다.

관련 정보