Development(Web, Server, Cloud)/22) LINUX - Cloud

Cloud15 - if문, 시스템 환경변수, $?

tonyhan18 2022. 1. 19. 17:45
728x90

쉘은 명령어 해석기의 역활을 한다고 보통 말한다.

 

그렇다보니 변수랑 배열을 사용할 수 있고

또 사용자로부터 정보를 받아올 수 있다. 대표적으로 이름, 나이, 주소를 받아온다고 하자. 이렇게 받아온 데이터들을 묶어서 하나의 변수로 사용한다고 하자.

배열에 데이터를 담을때는 key:value 형태로 담는다. db에도 key:value 형태로 담는다.

 

쉘 : 여러 명령어 사용하는 방법

 

#!/bin/bash <-- 매직쿼터, 쉬뱅이라 부르고 아래의 모든 코드를 /bin/bash로 해석하라

 

 

 

시스템 환경변수

사용자가 로그인하여 해당 시스템에 진입했을 경우 기본적으로 제공되는 변수이며 시스템내의 어느 곳으로 이동하더라도 동일한 변수명을 사용할 수 있는 전역변수(global)로 사용된다.

(지역변수->local)

 

일반적으로 환경변수 및 전역변수는 대문자로 표현하고 지역변수는 소문자로 작성한다.

env, set 명령을 실행하면 모든 변수는 대문자로 되어 있다.

 

환경변수

echo $USERNAME

echo $HOSTNAME

echo $PATH

 

지역변수

test1="hello all"

 

shell에서 변수선언

```

변수명=값 (참고로 비교에서 동일하다의 의미는 " == ")

```

$ -> 그냥 변수, 변수 사용

$() ->명령어(``)

$[] -> 계산과 연산(expr, bc) - 연산자들이 사용되면 이 안에서 연산하며 무조건 사용 -> 약간 변화한다라는 의미로 보는듯함 - 대도록 연산자 앞에는 역슬래쉬(\)을 써주자

${} -> 전체 변수("") - 내용 그 자체를 사용할때 사용

 

```

days=10

guest="gildong"

echo "$guest checked in $days"

```

 

계산하기

```

a=$[2+2]  #변수에 담을거면 이렇게 해야함

expr 2 + 2

echo "hello" "hello" "hello" "hello"

```

 

bc 이용하기

```

echo "scale=5;5.14 * 1.1" |  bc

a=$ (echo "scale=5;5.14 * 1.1" |  bc)

```

 

if 문 사용하기

if 문 안에 들어가는 조건은 두가지임 두가지 쓰는 법이 달라서 잘 알아두어야함

```

if 명령어  #  if [ 조건문 ]

then

  참

elif

  기능

else

  거짓

fi

```

 

- 조건연산자

= -eq  
!=    
> -gt  
< -lt  
>= -ge  
<= -le  
-n str1 str1의 길이가 0보다 큰 지 검사 특 변수에 " " 로 감싸주지 않으면 에러남
-z str1 str1의 길이가 0인지 검사  

 

 

 

 

참고로 정상실행여부는 $?로도 확인가능하다

0 -> 정상실행

1 -> 정상아님

[shell] 셸에서 0이 참이지만 거짓이 1 인 이유는 무엇입니까? - 리뷰나라 (daplus.net)

 

[shell] 셸에서 0이 참이지만 거짓이 1 인 이유는 무엇입니까? - 리뷰나라

false; echo $? 위의 출력 1은 내가 아는 다른 모든 프로그래밍 언어와 모순되는. 그 이유는 무엇입니까? 답변 관습이지만 생각할 때 특히 유용합니다. 일반적으로 프로그램이 성공하면 그만 알면됩

daplus.net

참고로 셸에서 참이 0인 이유는 참인경우 추가적으로 알 필요가 없어서이다.

그 외의 숫자로 에러를 나타내기 위해서 그런다고 한다.

 

 

 

 

Bash 변수는 타입이 없다(untyped) (kldp.org)

 

Bash 변수는 타입이 없다(untyped)

Bash 는 다른 프로그래밍 언어들과는 달리, 변수를 "타입"으로 구분하지 않습니다. Bash 변수는 본질적으로 문자열이지만 Bash 가 문맥에 따라서 정수 연산이나 변수를 비교해 줍니다. 이 동작을 결

wiki.kldp.org

참고로 Bash는 타입이 없다고 한다. 기본 문자열이고 문맥에 따라서 정수와 변수로 처리한다.

 

 

 

문자비교

 

 

 

네트워크

디지털과 아날로그 신호의 정의

 

 

1011 0111 => 183

128 + 48+7

 

 

아날로그 디지털 변환 과정

ADC(Analog Digital Converter)

DAC(Digital Analog Converter)

 

주파수는 1초에 몇 주기를 진동을 하는지를 나타내는 것으로 Hz단위를 사용

1Hz = 1초에 1주기

디지털처리에서 사용시에는 1주기에 1bit 처리를 하도록 만들어져 있음

디지털 처리에서 1Hz = 1bps와 동일하게 볼 수가 잇음

 

Cisco Packet Tracer

 

728x90