2012-06-28 5 views

답변

1

예, 가능합니다.

$ :() 
> { 
> echo "hello from : :)" 
> } 
$ : 
hello from : :) 
+0

네, 작동 중입니다. 콜론이 식별자로 사용될 수 있다고 말하는 URL을 사용할 수 있습니까? –

+1

그런 URL은 없습니다 (알고 있습니다).하지만 토론을보십시오. http://old.nabble.com/Document-what's-allowed-in-function-names-td31361546.html; 그것은 당신에게 흥미로울 수 있습니다. –

+0

나는 당신이 그것을 여기에 남겨 둘 수 있다고 생각한다. :) 고맙다. 읽기는 즐겁지 만 그것은 사실이 아니다. John Skeet, Darin Dimitrov, Balus - 그들은 정말로 위대한 사람들입니다. –

1

:

name

A word consisting solely of letters, numbers, and underscores, and beginning with a letter or underscore. Names are used as shell variable and function names. Also referred to as an identifier.

아니, 콜론은 함수 이름에 유효하지 않습니다. 따라서 bash에서 폭탄이 작동하지 않거나 문서가 제대로 작동하지 않습니다.

곧 콜론이 built-in operator을 참조 할 수 있다고 생각했지만 예상되는 의미를 얻을 수있는 방법을 알지 못합니다.

+0

. " $ ulimit를 -u 50 $ :() {: | : & }; : -bash : 포크 : 일시적으로 사용할 수 없습니다 자원"그것은 그가 바로 함수 이름과 콜론을 사용하는 의미 ? –

0

구현이 일관성이없는 것처럼 보입니다. 콜론을 포함하는 함수를 정의하고 호출 할 수 있으며 Google은 style guide에있는 패키지에 대해서도 이것을 제안합니다.

이러한 기능을 내보내거나 설정 해제 할 수없는 것으로 나타났습니다.

#!/usr/bin/env bash 

foo:bar() { 
    echo "foo:bar called" 
} 

foo:bar 

export -f foo:bar 

unset foo:bar 

export 불평하지 않습니다하지만 당신은 다른 bash는 스크립트를 호출하면 이후 foo:bar 사용할 수 없습니다.

설정 해제도 오류를 트리거 : 해당 페이지의 예입니다

/foo/bar: line 11: unset: `foo:bar': not a valid identifier 

$ bash --version 
GNU bash, version 4.2.46(1)-release (x86_64-redhat-linux-gnu)