[Ubuntu Linux] Linux 쉘(shell) 기본 문법 |
Shell은 Terminal에서 명령어를 입력하여 사용하기도 하지만, 프로그래밍하여 .sh 실행파일을 생성하여 사용하기도 한다.
1. 최상단에 #!/bin/bash 추가
- sh파일을 작성할때는 반드시 최상단에 #!/bin/bash 기록해줘야 해당 Shell을 통해 실행한다.
2. Shell 파일 실행 방법 ( ./ )
- sh / source / . 등은 권한이 없어도 수행이 가능하지만, ./ 로는 권한없이 수행이 불가하다.
3. 주석은 #을 이용한다.
4. 출력은 echo, printf, read(C에서 Scanf와 같음, 입력을 기다림) 등을 이용한다.
a=10
echo : 자동개행
printf : 개행을 해줘야한다
5. if 블록은 fi로 끝난다.
num=7
if (( ${num} == 7 )); then
equal
else
not equal
fi
6. for문은 do 반복수행문, done으로 끝난다
arr = (a b c d) # 배열변수 선언, 띄어쓰기 주의
for x in ${arr[@]}; do # arr에 @는 모든 원소를 의미, i로 받아옴
echo $x
done
7. 변수에 타입은 없으며, 선언을 제외하고 사용시 $를 붙인다.
8. 기본변수로 $0은 실행 파일명을 가지며, $# 파라미터 갯수를 가지며, $$ 프로세스ID를 나타낸다.
기본변수
- \$0 : $0
- \$# : $#
- \$$ : $$
9. 실행시 매개변수는 들어온 순서대로 $1 ~ $999 까지 사용가능하며, $* , $@을 통해 한번에 받을수 있다.
mine=("probecoding" "30" "IT")
echo ${mine[*]} # 모든 데이터 출력
10. 산술연사는 `를 감싸 expr로 표현한다.
실행시 매개변수 3개이상 주어야 함 a,b,c에서 받음
a=$1
b=$2
c=$3
echo $1
echo b + c = `expr $b + $c` # `이거로 감싸줘야 연산이 됨
\$@ :$@
\$* :$*
num=`expr \( 10 + 20 \) / 8 - 8`
비교 연산자 | 의미 |
-eq | 같음 |
-ne | 같지 않음 |
-gt | 더 큼 |
-ge | 크거나 같음 |
-lt | 더 작음 |
-le | 더 작거나 같음 |
-z | 문자열이 null인가? |
-n | 문자열이 null이 아님 |
-a | 논리 and |
-o | 논리 or |
'네트워크,서버,프로그래밍' 카테고리의 다른 글
[Ubuntu Linux] 나노(nano)를 이용한 파일편집 (0) | 2023.02.19 |
---|---|
[Ubuntu Linux] 파일 경로 및 파일관리 명령어 (0) | 2023.02.19 |
[Ubuntu Linux] Linux 쉘(shell) (0) | 2023.02.16 |
[Ubuntu Linux] 우분투 방화벽(UFW) 설정 (0) | 2023.02.16 |
[Ubuntu Linux] 우분투 패키지 관리 (0) | 2023.02.16 |