Cloud15 - if문, 시스템 환경변수, $?
쉘은 명령어 해석기의 역활을 한다고 보통 말한다.
그렇다보니 변수랑 배열을 사용할 수 있고
또 사용자로부터 정보를 받아올 수 있다. 대표적으로 이름, 나이, 주소를 받아온다고 하자. 이렇게 받아온 데이터들을 묶어서 하나의 변수로 사용한다고 하자.
배열에 데이터를 담을때는 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