본문 바로가기

Linux/Bash shell

[Linux] raspberrypi 출력 명령문 echo / printf / expr / cat (연산, 변수 활용 포함) + touch(파일 생성)

# 정리

#echo
 - '' / "" 상관없이 텍스트화 가능
 - >> 기호로 파일 생성 후 저장 가능
#printf
 - 명령 실행 후 줄 바꾸기 기능 없음
 - >> 기호로 파일 생성 후 저장 가능
#expr
 - 글씨 출력 가능하나 기본적으로 연산 결과 표시 할 때 사용
 - 연산자 사용시 꼭 띄어쓰기 해줘야 함
#cat (입력-파일 생성 / 출력)
 - 파일 내용 출력 가능
 - 여러 줄의 내용 입력 및 입력 내용 파일 저장 가능 ($ cat > fileName.txt <<END)
#touch
 - 내용이 없는 파일 생성
# $ ls -l >> fff.txt
  - ls -l 명령어의 결과 값(파일 목록)을 fff.txt에 저장

//pwd - 현재 디렉토리 보기
//연산은 $(( ))로 괄호가 2번 들어감
//변수는 $을 붙여서 표기한다 - 연산 안에 변수를 넣을 때는 연산$가 이미 있어서 안써도 인식할 수 있다.

 

 

 


# echo(출력)

pi@raspberry:~/shellPro $ echo aaa

- aaa 출력

pi@raspberry:~/shellPro $ echo "aaa"   /   pi@raspberry:~/shellPro $ echo 'aaa'

- '' / "" 상관없이 텍스트화 가능

pi@raspberry:~/shellPro $ echo -e aaa\naaaa 

- \n(줄 바꾸기) 효과가 없음 - 문자열로 인식

pi@raspberry:~/shellPro $ echo -e "aaa\naaa"  /  pi@raspberry:~/shellPro $ echo -e 'aaa\naaa'

- " "으로 묶어줘야 \n(줄 바꾸기) 효과가 있음 (''로 동일 효과 가능)

 

//$(( ))로 연산 가능

pi@raspberry:~/shellPro $ echo $((10+20))

 - 10 +20 연산 값 (30) 출력, 아래와 같이 입력하는 경우 문자열로 인식하여 출력됨.

 - pi@raspberry:~/shellPro $ echo "kor:100" >> kor:100

 - pi@raspberry:~/shellPro $ echo 10+20 >> 10+20

 - pi@raspberry:~/shellPro $ echo "10+20" >>10+20

 

기타 연산자 활용 예시

 

//변수 활용 가능

 - 명령어를 넣어서 결과를 출력 받을  있다

pi@raspberry:~/shellPro $ echo $(pwd) 

 - 현재 디렉토리(/home/pi/shellPro) 출력 

pi@raspberry:~/shellPro $ a=10

 - 변수 a안에 값을 넣을  있다. (띄어쓰기 있으면 안됌)

 

//변수 지정

pi@raspberry:~/shellPro $ kor=11

pi@raspberry:~/shellPro $ eng=22

pi@raspberry:~/shellPro $ math=33

 

//변수 확인

pi@raspberry:~/shellPro $ echo $kor

 

//변수는 $() 넣는다 - 연산은 $(( )) 괄호가 2 들어감

//연산 안에 변수를 넣을 때는 연산$ 이미 있어서 안써도 인식할  있다.

pi@raspberry:~/shellPro $ echo "total:" $(($kor+eng+math))

pi@raspberry:~/shellPro $ echo "avg:" $(((kor+$eng+$math)/3))

 

 


# printf (출력)

pi@raspberry:~/shellPro $ printf "Hello linux"

- "Hello linux"출력 값 다음 줄 넘기기 없음 (하단 이미지 참조)
pi@raspberry:~/shellPro $ printf "Hello linux\n"
- "Hello linux"출력 후 줄 넘기기 
pi@raspberry:~/shellPro $ printf "kor:%d\n" 99
- %d (10진수) 표기 

 

//기타 연산자 활용 예시

pi@raspberry:~/shellPro $ printf "kor:%d, eng:%d, math:%d\n" 11 22 33

- 각각 변수에 정수 입력

pi@raspberry:~/shellPro $ printf "avg:%.2f\n" 99.999

- %.2f >> 정수 (2자리수 반올림)

 

 

 

# expr (출력)

// expr 글씨 출력 가능하나 기본적으로 연산 결과 표시 할 때 사용 (연산자는  띄어쓰기 해줘야 함)

pi@raspberry:~/shellPro $ expr 10 \* 20

- 곱셈 연산은 앞에 \ 표기 필요

pi@raspberry:~/shellPro $ expr hello

- 일반 텍스트도 가능

 

# cat (출력)

pi@raspberry:~/shellPro $ cat test.txt

- test.txt파일 내용 출력

 

 

 


# 파일 저장 (touch / echo / printf / cat / 출력값 저장)

** >> 기호에 우측 파일로 저장해라 라는 의미가 있음

//메모장 만들어서 글씨 넣고, 출력하기

pi@raspberry:~/shellPro $ touch test.txt

- ( 내용 없음 ) test.txt 파일 생성 

pi@raspberry:~/shellPro $ echo -e "aaa\naaa" >> test2.txt

- "aaa\naaa" 내용을 test2.txt 파일에 저장

 

pi@raspberry:~/shellPro $ printf "kor:%d\n" 99 >> kkk.txt
- "kor:%d\n" 99 내용을 kkk.txt파일에 저장

 

pi@raspberry:~/shellPro $ cat > ddd.txt <<END

- ddd.txt 안에 여러줄로 문서작업 > 작성종료  END 마무리

 

** cat으로 작성된 문서는 변수가 저장되지 않는다.

 - cat으로 작성된 4개의 변수(kor,eng,math,science)는 저장되지 않고, 이전에 따로 저장한 값(kor=99,eng=88)만 출력되는 것을 볼 수 있다.

 

 

 

# 출력 값 저장

pi@raspberry:~/shellPro $ ls -l >> fff.txt
- ls -l 로 나온 파일 목록 전체를 fff.txt에 저장

 

 

 

 

 


 

# echo/ printf 변수 활용 연산 예제

// 변수 설정

pi@raspberry:~/shellPro $ kor=11
pi@raspberry:~/shellPro $ eng=22
pi@raspberry:~/shellPro $ math=33

 

//변수 지정 값 확인
pi@raspberry:~/shellPro $ echo $kor
pi@raspberry:~/shellPro $ echo $eng
pi@raspberry:~/shellPro $ echo $math

 

// echo 활용 연산 및 출력 (연산을 위한 $가 있으므로 연산 내에 변수를 넣을 때에는 $를 쓰지 않아도 인식 가능)
pi@raspberry:~/shellPro $ echo "total:" $(($kor+$eng+$math))
pi@raspberry:~/shellPro $ echo "total:" $((kor+eng+math))
pi@raspberry:~/shellPro $ echo "avg:" $(((kor+$eng+$math)/3))

 

// printf 활용 연산 및 출력
pi@raspberry:~/shellPro $ printf "total: %d\n" $((kor+eng+math))
pi@raspberry:~/shellPro $ printf "avg: %.2f\n" $(((kor+eng+math)/3))