본문 바로가기
Programming/ETC

[Shell] 기본적인 쉘 프로그래밍 - eval, export, printf

by 코딩의성지 2020. 10. 21.

eval

문자열을 명령문으로 인식하고 실행하는 명령어

 

export

외부변수로 선언을 위한 키워드다. 선언된 변수는 다른 프로그램에서도 사용할 수 있게된다.

 

스크립트를 두개 짜자.

 

하나는 지역변수나 외부변수를 호출하는 스크립트를 하나짜고

printvar.sh

 

하나는 지역변수와 외부변수를 선언하고 대입하고 출력하는 스크립트를 호출하는 스크립트를 하나 짜자.

export.sh

 

 그러고 스크립트를 호출해보자.

외부 변수의 값만 잘 출력되는것을 확인할 수 있다.

 

printf

c언의 printf 처럼 형식을 사용해서 수를 출력하는 방법도 있다

 

#줄바꿈 없이 문자열 출력

printf "%s" "hi"

결과

hi(바로뒤 명령 프롬프트)

 

#문자열 출력하고 줄바꿈

 printf "%s\n" "hi"

결과

hi
(줄바꾸고 명령프롬프트)

 

# 탭

printf "%s\t%s\n" "hi" "banker"

결과

hi    banker

 

# 정수 출력

printf "%d" "10"

결과

10

 

# 소수점 정한자리까지 실수 출력 ( 정한자리 이후부터 반올림)

printf "%.2f" "12.643"

결과

12.64

 

#길이 7 짜리 소수점 두번째 자리까지 출력

printf "%7.2f" "12.643"

결과

  12.64

 

#길이 7 짜리 소수점 두번째 자리까지 출력 (빈칸 0으로 채우기)

printf "%07.2f" "12.643"

결과

0012.64

 

#10진수 16진수로

printf "%x" "10"

결과

a

 

#16진수 10진수로

printf "%d" "0xa"

결과

10

 

디버깅

Bash 옵션(스크립트 실행 시)set 옵션(스크립트 코드 삽입)설명

Bash 옵션
(Script 실행 할때)
set 옵션
(Script 코드 삽입)
내용
bash -n set -n, set -o noexec 스크립트 실행 없이 단순 문법 오류만 검사한다
(찾지 못하는 문법 오류가 있을수는 있다)
bash -v set -v, set -o verbose 명령어 실행 전에 해당 명령어 출력한다 (echo)
bash -x set -x, set -o xtrace 명령어 실행 후에 해당 명령어 출력한다 (echo)
  set -u, set -o nounset 미선언 된 변수를 발견했을 때 "unbound variable"라는 메시지 출력

 

반응형

댓글