728x90

[ Bash : Bourne-Again Shell ]

 

내부 명령(built in) 

built in(고유의, 붙박이의)

 

내부 명령은 시스템 명령어와 이름이 같을수도 있지만 이런 경우 Bash가 내부적으로 다시 구현해놓은것

ex) echo, read, print, exit .. 등등

 

스크립트 명령어

 

4 (read) 2 (write) 1 (excute)

 

chmod 555 scriptname (아무나 읽고/실행 할 수 있게) 

chmod +rx scriptname (아무나 읽고/실행 할 수 있게)

chmod u+rx scriptname (스크립트 소유자만 읽고/실행할 수 있게)

 

 

$UID # 기본적으로 UID가 0인 유저만이 루트 권한을 갖는다.

 

if 문 조건식

[ -z ] : 문자열의 길이가 0이면 참
[ -n ] : 문자열의 길이가 0이 아니면 참


[ -eq ] : 값이 같으면 참
[ -ne ] : 값이 다르면 참
[ -gt ] :  값1 > 값2
[ -ge ] : 값1  >= 값2
[ -lt ] : 값1 < 값2
[ -le ] : 값1 <= 값2


[ -a ] : &&연산과 동일 and 연산
[ -o ] : ||연산과 동일 xor 연산


[ -d ] : 파일이 디렉토리면 참
[ -e ] : 파일이 있으면 참
[ -L ] : 파일이 심볼릭 링크면 참
[ -r ] : 파일이 읽기 가능하면 참
[ -s ] : 파일의 크기가 0 보다 크면 참
[ -w ] : 파일이 쓰기 가능하면 참
[ -x ] : 파일이 실행 가능하면 참
[ 파일1 -nt 파일2 ]  : 파일1이 파일2보다 최신파일이면 참
[ 파일1 -ot 파일2 ]  : 파일1이 파일2보다 이전파일이면 참
[ 파일1 -ef 파일2 ] : 파일1이 파일2랑 같은 파일이면 참

#! 스크립트의 제일 앞에서 이 파일이 어떤 해석기의 명령어 집합인지 알려주는 역할

 #! 바로 뒤에 나오는 것은 경로명으로, 스크립트에 들어있는 명령어들을 해석할 프로그램의 위치를 나타내는데 그 프로그램이 쉘인지, 프로그램 언어인지, 유틸리티인지를 나타냅니다. 이 명령어 해석기가 주석은 무시하면서 스크립트의 첫 번째 줄부터 명령어들을 실행시킵니다.

 

ex) !/bin/bash

 

[매개변수 개수 체크 로직]

if [ $# -ne 원하는_매개변수_갯수 ]
then
  echo "사용법: `basename $0` 어쩌구저쩌구"
  exit $WRONG_ARGS
fi
728x90

'쉘스크립트' 카테고리의 다른 글

8~/ 9~/ 연산자, 변수 재검토  (0) 2022.03.03
7~ 테스트  (0) 2022.03.03
6~ / #쿼우팅  (0) 2022.03.02
5. / # 변수와 매개변수 소개  (0) 2022.03.02
2.1~2.2 / 3. / 4. # 기초단계 종료상태 특수문자  (0) 2022.03.02

+ Recent posts