그것은 껍질에 달려 있습니다. 우리가 4 가지 주요 쉘 패밀리 (Bourne, csh, rc, fish) 만 본다면 :
본 가족
즉, Bourne 쉘 및 모든 변종이며 ksh
, bash
, ash
/ dash
, zsh
, yash
.
var=23
: 그것은 올바른 변수 할당 구문입니다 : 따옴표가없는 문자, 숫자 또는 밑줄로 구성 =
되고 명령 인수 앞에 나타나는 따옴표 가 붙은 단어 (여기서 자체)
var =23
의 var
와 명령 =23
(제외 등 인수 zsh
곳 =something
의 경로로 확장하는 특별한 연산자 something
로 명령을 입력합니다. 여기에서, 당신은 가능성이 오류가 발생하는 것 23
유효한 명령 이름이 될 가능성이있다).
var= 23
: var=
명령 이름 뒤에 오는 지정 23
. 그것은 환경 ( 빈 값을 가진 환경 변수)으로 전달 되어 실행 23
됩니다 .var=
var
var = 23
, 및 var
명령을 인수로 사용하십시오. 예를 들어 보십시오 .=
23
echo = 23
Csh 가족
csh
그리고 tcsh
. 변수 할당에는 set var = value
스칼라 변수, set var = (a b)
배열, setenv var value
환경 변수, @ var=1+1
할당 및 산술 평가 구문 이 있습니다 .
그래서:
var=23
바로 호출하는 var=23
명령을 사용합니다.
var =23
인수로 var
명령을 호출합니다 =23
.
var= 23
인수로 var=
명령을 호출합니다.23
var = 23
인수 var
와 함께 =
및 23
인수로 명령을 호출합니다 .
Rc 가족
그건 rc
, es
하고 akanga
. 이러한 껍질, 배열 변수이며 할당으로되어 var = (foo bar)
함께 var = foo
짧게되고 var = (foo)
(하나 개와 배열 foo
요소)와 var =
위한 짧은 var = ()
(NO 요소 어레이를 사용 var = ''
하나 개 빈 요소 어레이의 경우).
어쨌든 빈칸 (공백 또는 탭) =
은 허용되며 선택 사항입니다. 따라서이 쉘에서이 4 개의 명령은 var = (23)
하나의 요소가있는 배열을 할당하는 것과 동일하며 동등합니다 23
.
물고기
에서 fish
, 변수 할당 구문입니다 set var value1 value2
. 에서처럼 rc
변수는 배열입니다.
따라서 동작은 이름 과 함께 명령을 실행할 수 없다는 csh
점을 제외하고는와 동일합니다 . 이러한 명령이 있으면 예 를 들어 다음을 통해 호출해야합니다 ..fish
=
sh
sh -c 'exec weird===cmd'
모든 그래서 var=23
하고 var= 23
당신에게 오류를 제공합니다 var =23
부르는 것 var
으로 명령을 =23
인수로하고 var = 23
부르는 것 var
와 명령 =
및 23
인수로.