일부 bash 스크립트에서 사용되는 'function'키워드는 무엇입니까?
함수 foo () {}
검색 쿼리를 작성 info bash
하고 POSIX의 releted 장에서 함수 키워드를 찾았지만 아무것도 찾지 못했습니다.
function
일부 bash 스크립트에서 사용되는 키워드 는 무엇입니까 ? 더 이상 사용되지 않는 구문입니까?
function
배쉬에서 함수를 정의 할 때에 설명 된대로 키워드는 선택 사항입니다 수동 :
함수는 다음 구문을 사용하여 선언됩니다.
name () compound-command [ redirections ]
또는
function name [()] compound-command [ redirections ]
구문의 첫 번째 형식은 일반적으로 Bourne / Korn / POSIX 스크립트와 호환되고 이식성이 높기 때문에 선호됩니다.
즉, 때때로 function
키워드를 사용하여 Bash 별칭 이 함수 이름과 충돌 하지 않도록 할 수 있습니다 . 이 예를 고려하십시오.
$ alias foo="echo hi"
$ foo() { :; }
bash: syntax error near unexpected token `('
여기서는 명령 'foo'
의 첫 번째 단어 이기 때문에 동일한 이름의 별칭 텍스트로 대체됩니다 . 으로 function
별칭 확장되지 않은 :
$ function foo() { :; }
function
함수 이름도 별칭 때 키워드는 드문 경우에 필요하다. 그것이 없으면 Bash는 함수 정의를 구문 분석하기 전에 별칭을 확장합니다.
alias mycd=cd
mycd() { cd; ls; } # Alias expansion turns this into cd() { cd; ls; }
mycd # Fails. bash: mycd: command not found
cd # Uh oh, infinite recursion.
function
키워드를 사용하면 의도 한대로 작동합니다.
alias mycd=cd
function mycd() { cd; ls; } # Defines a function named mycd, as expected.
cd # OK, goes to $HOME.
mycd # OK, goes to $HOME.
\mycd # OK, goes to $HOME, lists directory contents.
예약어 function
는 선택 사항입니다. bash man 페이지 의 'Shell Function Definitions'섹션을 참조 하십시오 .
참고 URL : https://stackoverflow.com/questions/7917018/what-is-the-function-keyword-used-in-some-bash-scripts
'IT Share you' 카테고리의 다른 글
axios로 Bearer 토큰 보내기 (0) | 2020.12.14 |
---|---|
Ruby on Rails 앱을 sqlite에서 MySQL로 변환 하시겠습니까? (0) | 2020.12.14 |
apache가 localhost 외부에서 들어오는 연결을 수락하지 않습니다. (0) | 2020.12.14 |
다른 머신에서 복사 한 스냅 샷 (rdb 파일)에서 redis 데이터를 복구하는 방법은 무엇입니까? (0) | 2020.12.14 |
UIViewController로 다시 팝업 된 후 UIScrollView의 원점이 변경됩니다. (0) | 2020.12.14 |