안녕하세요
이번에는 조건이있는 스크립트를 만드는 방법을 보여 드리겠습니다. 강타, 번역 :
원하는 X 작업이 완료되면 Y 동작이 수행되고, 완료되지 않으면 다른 동작이 수행됩니다.
설명이 간단하지 않네요
이제 몇 분 동안이 튜토리얼에서 사용할 몇 가지 예를 생각했습니다. 다음과 같은 딜레마 / 문제 / 상황이 발생했습니다.
우리는 회사 네트워크에 있고 X 컴퓨터가 네트워크에 연결되어 있는지 알고 싶습니다. 이를 위해 우리는 스크립트 그는 무엇을 할 것인가 핑 해당 컴퓨터를 향하고 네트워크에있는 경우 (즉, 핑)은 예, 네트워크에 있음을 알려줍니다. 그렇지 않으면 (네트워크에 없음) 네트워크에 없음을 알려줍니다.
이 작업이 완료되면 이제 조건을 사용하여 루프를 만드는 방법을 설명하겠습니다
다음은 코드입니다.
ping -c 1 DIRECCION-IP
if [ $? -ne 0 ]; then
echo "No está en red"
else
echo "Sí está en red"
fi
걱정하지 마세요. 제가 자세히 설명해드리겠습니다
핑 사용할 명령이며 해당 PC가 네트워크에 있는지 알려줍니다. 네트워크에 연결되어 있는지 확인하려는 PC를 알려 주려면 변경해야합니다. IP 주소 분명히 우리가 확인하려는 PC의 IP 주소로.
보시다시피«-c 1«, 우리에게 필요합니다. 우리가 컴퓨터를 핑할 때,이 동작은 우리 자신을 누를 때까지 멈추지 않습니다 (핑). [Ctrl] + [C], 그래서«-c 1»우리는 한 번만 확인 (핑 시도 만)하고 다른 확인은 수행하지 않도록 지시합니다. 이렇게하면 즉시 중지됩니다. 즉, 컴퓨터가 네트워크에 한 번만 있는지 확인합니다.
이에 대해 의심이 든다면 당황하지 말고... 그렇게만 말씀해 주시면 기꺼이 다시 설명해 드리겠습니다
이제 사이클이 왔습니다. 제가 방금 설명한 것은 일반적인 명령/동작에 지나지 않기 때문입니다
if [ $? -ne 0 ]; then
echo "No está en red"
else
echo "Sí está en red"
fi
여러분의 이해를 돕기 위해 Bash의 매우 중요한 세부 사항을 설명하겠습니다
주제에 대해 더 잘 아는 사람들은 나를 틀렸다거나 그런 식으로 말할 수 있지만, 나는 초보자나 덜 전문가를 위해 이 글을 씁니다. 그들이 그것을 이해하는 한 훌륭합니다
에서와 같이 발생합니다. 강타 그것은 마치 0 y 1즉, 명령이나 작업이 실행될 때 살아 있거나 죽었습니다. 잘 실행 문제 없어요 (1)와, 약간 있었다 문제 또는 오류 (0).
우리는 실시했다
우리가 할 일을 보내는 경우 (이 경우 : ping -c 1 IP-ADDRESS) 오류가 발생하지 않았으며 성공 했으므로 다음 값을 반환합니다. 1 . 그렇지 않고 작업 (즉, ping)이 성공하지 못한 경우 값을 반환합니다. 0.
마지막으로 위 코드가 의미하는 바는 다음과 같습니다.
값 0이 반환되면
텍스트 표시 :«네트워크에 없음»
그렇지 않으면 (0이 아니라 1이 반환 됨)
텍스트 표시 :«네트워크에있는 경우«
제가 방금 설명 드린 내용은 앞으로 많은 일에 도움이 될 것입니다. X 액션이 오류를 주면 Y 액션을하고, X 액션이 오류를주지 않으면 Z 액션을한다고 말할 수있는 것이 정말 유용하기 때문입니다.
나는 어떤 사람들이 약간 관여 할 수도 있다는 것을 알고 있기 때문에 모든 사람들이 어떤 식 으로든 이해하도록 노력하면서 여러 가지 방법으로 설명하려고 노력했습니다. 의심스러운 사람이 있으면 알려주십시오.
이제 스크립트를 작성해 봅시다
이 자습서의 단계를 따라야합니다. Bash : 실행 가능한 스크립트를 만드는 방법
그런 다음 다음 코드를 해당 파일 (스크립트.sh), 마지막에«출구»(따옴표 제외) :
ping -c 1 DIRECCION-IP
if [ $? -ne 0 ]; then
echo "No está en red"
else
echo "Sí está en red"
fi
다음과 같이 표시되어야합니다 (IP-ADDRESS를 원하는 IP로 변경 했어야 함).
여기에서 실행중인 스크립트를 볼 수 있습니다.
% CODE1 %
보시다시피 결국 그는 우리에게«예, 네트워크에 있습니다.»
여기서 중요한 것은 그들이 조건에 대해 실제로 이것을 이해한다는 것입니다. 그래서 다시 설명하기 위해 또 다른 코드를 남기지 만 다른 관점에서 보겠습니다.
read "texto"
if [ "$texto" = "3" ]; then
echo "Correcto"
else
echo "Incorrecto"
fi
이것이 의미하는 것은 간단합니다. 설명을 한 줄씩 남겨 둡니다.
첫 번째 줄 : 우리가 쓰는 것은 변수«본문»(따옴표 제외).
두 번째 줄 : 변수의 내용 (방금 작성한 내용)이 3.
첫 번째 줄 : 인 경우 3, 텍스트«수정»(따옴표 제외).
네 번째 줄 : 그렇지 않으면 (즉, 3을 작성하지 않은 경우).
네 번째 줄 : «텍스트가 표시됩니다.틀렸다»(따옴표 제외).
네 번째 줄 : 조건의 끝.
그들이 깨달을 수 있었던 것처럼 우리가 에코 그리고 큰 따옴표 사이 («) 텍스트를 입력하면 해당 텍스트가 터미널에 표시됩니다. 즉, 다음과 같이 입력하면 :
echo "esto es una prueba"
터미널에 텍스트가 표시됩니다. 이것은 시험이다.
하지만 이 두 번째 예제로 돌아가서 매우 간단한 내용을 통해 이 두 번째 스크립트의 유용성(및 실행)을 보여 드리겠습니다. … 일반적인 «1 + 2는 얼마입니까?«
완전한 스크립트의 코드를 남깁니다.
#!/bin/bash
# -*- ENCODING: UTF-8 -*-
echo "¿Cuánto es 1 + 2?"
read "texto"
if [ "$texto" = "3" ]; then
echo "Correcto"
else
echo "Incorrecto"
fi
exit
스크립트 작동 방식은 다음과 같습니다.
% CODE2 %
그리고 더 이상 추가 할 것은 없습니다.
이것은 초보적이고 단순한 것입니다. 하지만 가능한 한 최선을 다해 설명하려고 노력했습니다. 모든 사람이 프로그래머의 영혼을 갖고 있는 것은 아니며 이와 같은 (또는 유사한) 스크립트를 여러 번 만들어야 하기 때문입니다. 이 글이 누군가에게 도움이 되기를 바랍니다
의심, 질문, 불만 또는 제안 사항이 있는 경우 여기에 남겨주세요. 기꺼이 답변해 드리겠습니다. 그러면 우리 모두 조금 더 배울 수 있습니다
안부