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
로 올바른 구문과 올바른 언어를 사용하는지 확인해야 합니다.