|
에 안전한 우리의 개념들 Bash에서 완벽하게 작동하는 프로그래밍에 매우 유용한 두 가지 도구를 배웁니다. 만드는 법 배우기 기능들 정의 파이프 처음에는 복잡해 보일지 모르지만 utilidad 그들은 우리에게 제공합니다. |
파이프
특히, 파이프 라인은 너무 많은 차례를 거치지 않고 한 프로세스의 출력을 다른 프로세스의 입력으로 지시 할 수있는 방법으로, 코드 줄을 줄이고 결과 저장 변수를 분배하고 스크립트의 효율성.
파이프는 일반적으로 기호 | 식을 연결할 수 있습니다. 기본적으로 사용되지만 파이프를 작성하는 다른 방법이 있습니다.
예 : 최근 커널 메시지 인쇄
#dmesg를 사용하면 시스템 부팅 중에 최근 커널 메시지와로드 된 드라이버를 볼 수 있습니다. tail은 파일 또는 #command의 마지막 부분을 인쇄합니다.
dmesg | 꼬리
원하는만큼 복잡 할 수 있지만 파이프 라인의 기본 구조는 한 명령의 결과를 다음 명령에 대한 입력으로 사용할 수 있도록하여 연속 파이프를 계속 추가하면 새 명령에 대한 입력을 제공 할 수 있습니다.
함수
함수는 다시 작성하지 않고도 여러 번 실행할 수 있도록 함께 그룹화 된 명령문 세트입니다. 그것은 우리가 어떤 음식을 요리하는 법을 배울 때 우리는 그 요리법을 시트에 쓸 것이라고 생각하고, 그 음식을 요리하고 싶을 때마다 같은 요리법으로 새로운 시트를 다시 쓰는 대신 레시피를 참조한다고 생각하는 것과 같습니다.
아마도 함수에서 가장 중요한 점은 매개 변수를 전달할 수있는 가능성이며,이를 처리하고 출력을 생성하는 데 사용할 데이터입니다. 그 구조는 다음과 같습니다.
function function-name {
프로세스들
}
예 : tcp 프로토콜에서 작동하는 서비스를 보여주는 함수. 더 많은 파이프를 적용하는 방법도 볼 수 있습니다.
# 우리는 함수 이름을 정의합니다. 우리가 좋아하는 이름이 될 수 있습니다.
function services_tcp {
#cat은 연결된 포트가있는 모든 서비스를 포함하는 # / etc / services 폴더의 내용을 연결하고 표시합니다.
# 첫 번째 grep은 목록을 가져 와서 주석을 제거합니다. –v를 사용하면 결과가 반전됩니다.
# 두 번째 grep은 tcp와 관련된 것만 표시합니다.
고양이 / 기타 / 서비스 | grep –v "^ #"| grep tcp
}
이 함수를 실행해야 할 때 이름으로 호출하면됩니다.
tcp_services
이 경우 매개 변수없이 작동합니다. 그것들이있는 경우 함수가 제대로 작동하도록 추가해야합니다. 그렇지 않으면 함수가 제대로 작동하지 않습니다. return을 사용하면 함수가 프로세스의 결과로 값을 반환 할 수 있습니다.
예 : 두 숫자의 합을 계산하는 입력 매개 변수가있는 함수.
#! / bin / bash
함수 합계 ()
{
# 따옴표 안에 작업을 실행할 수 있습니다.
"결과 = $ 1 + $ 2"
#return은 정수 값을 반환 할 수 있습니다. 반환이 실행되면 값은 변수 $?
$ 결과를 반환합니다.
}
#sum 함수가 호출되고 2 개의 입력 매개 변수를 전달합니다.
2 3 추가
# $의 값을 인쇄합니까? 따옴표로 묶인 변수의 실제 값을 평가하는 에코
echo -e "결과 = $?";