내 기분을 상쾌하게 하는 중이야세게 때리다기술. 나는 이 단어를 사용한다기술나는 오랫동안 게임을 하지 않았기 때문에 검토의 일환으로 다음 코드를 사용하여 무언가를 작성하기로 결정했습니다.배쉬/제니티/야드. 나는 매뉴얼 페이지를 읽고, 유익한 커뮤니티를 탐색하고, 많은 YouTube 비디오를 보았습니다. 그런 다음 내 아트 스튜디오를 위한 상품권을 생성하는 간단한 너겟을 만들었습니다. 예상한 대로 zenity에서 사용자 입력을 받아 클라우드에 있는 텍스트 파일에 데이터를 추가합니다. 간단하고 잘 작동합니다. 하지만 그때 나는 내가 사용할 수 있다는 것을 기억했습니다기능Bash에서는 코드를 더 자유롭게 이동할 수 있습니다. 너무 길었습니다. 함수에 인수를 전달하고 싶었지만 구문을 이해하지 못했다는 것을 깨달았습니다.
내가 시도한 대략적인 예는 다음과 같습니다.
function foo (bar) {
if [[ ${bar} -eq 1]]; then
#do_something_here
#return value_one_here
else
#do_something_else_here
#return value_two_here
fi
}
foo 3
newvar=$?
echo -e "${newvar}\n"
분명히 매개변수를 bash 함수에 전달하는 이 방법은 구문상 올바르지 않습니다. 이제 이 작업을 올바르게 수행하는 방법을 알고 있지만 다음과 같은 질문이 제기됩니다.함수 선언에 ()가 있는 이유는 무엇입니까? 그렇다면 () 안에는 무엇이 들어갈까요? () 안에 매개변수가 포함된 스크립트를 본 적이 없습니다. 그렇다면 왜 함수 구문의 일부입니까? 티아
답변1
표준 함수 정의에 사용되는 구문은 다음과 같습니다.
funcname() {
cmds;
}
AT&T는 1984년에 Bourne Shell에 이 기능을 추가하기로 결정했습니다.
함수 구문:
function funcname {
cmds;
}
1983년경부터. 이것은 AT&T에도 있었지만 David Korn의 그룹에서는 수정된 Bourne Shell 생성의 부작용으로 Bourne Shell에 데이터베이스 내장 명령을 추가하는 작업을 하고 있었습니다 ksh
.ksh