반응형
Bash 또는 Shell 스크립트에서 함수 선언을 전달 하시겠습니까?
예 bash
를 들어 C / C ++에서 잘 알려진 포워드 선언과 같은 것 또는 적어도 유사한 (해결 방법)이 있습니까?
아니면 예를 들어 항상 한 번의 패스 (한 줄씩)로 실행되기 때문에 그런 것이 있습니까?
전방 선언이없는 경우 스크립트를 더 쉽게 읽을 수 있도록하려면 어떻게해야합니까? 다소 길고 처음에는 이러한 함수 정의가 전역 변수와 혼합되어 스크립트가보기 흉하고 읽기 / 이해하기 어렵게 만듭니다)? 나는 그러한 경우에 대해 잘 알려진 / 모범 사례를 배우기를 요청하고 있습니다.
예를 들면 :
# something like forward declaration
function func
# execution of the function
func
# definition of func
function func
{
echo 123
}
좋은 질문입니다. 대부분의 스크립트에 다음과 같은 패턴을 사용합니다.
#!/bin/bash
main() {
foo
bar
baz
}
foo() {
}
bar() {
}
baz() {
}
main "$@"
You can read the code from top to bottom, but it doesn't actually start executing until the last line. By passing "$@"
to main() you can access the command-line arguments $1
, $2
, et al just as you normally would.
When my bash scripts grow too much, I use an include mechanism:
File allMyFunctions
:
foo() {
}
bar() {
}
baz() {
}
File main
:
#!/bin/bash
. allMyfunctions
foo
bar
baz
반응형
'IT박스' 카테고리의 다른 글
addEventListener를 사용하여 노드에 연결된 이벤트 리스너 가져 오기 (0) | 2020.09.07 |
---|---|
Java에서 value & 0xff는 무엇을합니까? (0) | 2020.09.07 |
if 문을 사용한 목록 이해 (0) | 2020.09.07 |
고정 너비 범위에서 긴 텍스트 / 단어를 줄 바꿈하거나 나누려면 어떻게해야합니까? (0) | 2020.09.07 |
프로토콜 버퍼 대 JSON 또는 BSON (0) | 2020.09.07 |