2023. 6. 28. 19:46ㆍRedHat
간단한 Bash 스크립트 작성
복잡한 작업의 경우 여러 명령 을 연결하고 명령 간에 결과를 전달해야 하는 경우가 많다.
이러한 상황에서 Bash 쉘 환경과 스크립팅 기능을 사용하면 리눅스 명령을 쉡 스크립트에 결합하여 실제 문제를 해결할 수 있다.
스크립트 첫 번째 행은 '#!' 표기법으로 시작한다. '#!'은 파일의 나머지 줄을 처리하기 위한 명령 인터프리터 및 명령 옵션을 나타내는 인터프리터 지시문
# Bash 구문 스크립트 경우
#!/usr/bin/bash
쉘 스크립트 파일을 일반 명령으로 실행하려면 실행 권한이 필요!
"chmo" 명령을 사용하여 파일 권한을 수정, 필요한 경우 chown 명령을 사용하여 특정 사용자 또는 그룹에만 실행 권한을 부여 한다.
Bash 쉘 스크립트가 쉘의 PATH 환경 변수에 나열된 디렉터리에 저장된 경우 컴파일된 명령을 실행하는 것과 유사하게 파일 이름만 사용하여 쉡 스크립트를 실행할 수 있다.
※ 스크립트는 처음 일치하는 파일 이름을 실행하므로 기존 명령 이름을 사용하여 스크립트 파일의 이름을 절대 지정하지 마시오.
PATH 경로 보는법:

스크립트가 PATH 디렉토리에 없을 경우 which명령으로 파일을 쿼리하여 확인할 수 있다.
또는 ./scriptname처럼 디렉터리 접두사를 사용하여 현재 작업 디렉터리에서 스크립트를 실행 가능
#파일이름 scriptname
#!/usr/bin/bash
echo "Hello"
결과 :


인용 특수 문자
백슬러시 (\), 작은따옴표(' '), 큰 따옴표(" ")

"" 큰따옴표 안에서는 변수는 작동

'' 작은따옴표 안에서는 변수 미작동

쉘 스크립트에서 출력 제공
"echo" 명령은 텍스트를 명령에 인수로 전달하여 임의 텍스트를 표시한다. STDOUT으로 전송
출력 리디렉션을 사용하여 텍스트를 다른 곳으로 보낼 수 있다.

/bin 디렉터리가 사용자의 PATH 변수에 있고, scriptname 스크립트에 실행 파일이 있기 때문에 프롬프트에서 scriptname을 실행할 수 가 있는 것이다.
이전 PATH 디렉터리에서 scriptname라는 다른 실행 파일을 찾을 수 없는 경우 PATH 구문 분석기는 먼저 스크립트를 찾고, 홈 디렉터리의 bin 하위 디렉터리는 개인 스크립트를 저장하기 위한 공간이다.
echo는 오류 메시지를 표시하기 위해 널리 사용, 로그파일이나 표준 출력/오류로 보낸다.


https://knight76.tistory.com/3087
간단하게 1>, >2, >&2, 2>&1, exec를 살펴보기
쉘 스크립트에서 >와 /dev/null cp file-name > /dev/null >1은 커맨드의 표준 출력을 다음에 나오는 파일 디스크립터에 전달한다. $ ls b* >1 m.log$ cat m.log... >2는 쉘 스크립트의 표준 에러를 다음에 나오는 파
knight76.tistory.com
연습가이드
간단한 Bash 스크립트 작성


좀 더 편집하고 실행 파일로 변경해 보기



테스트 파일 모두 삭제하기


스크립트의 반복문 및 조건부 구문
Bash의 for 반복문 구문
for VARIABLE in LIST; do
COMMAND VARIABLE
done
LIST에 제공하는 문자열을 반복적으로 처리, VARIABLE이라는 변수에 임시로 값이 저장된다.
VARIABLE은 임시 이름이다. 원하는 이름을 적으면 된다.



Bash 스크립트 종료 코드
$? 변수에서 마지막으로 완료된 명령의 코드를 검색할 수 있다.

문자열 및 디렉터리에 대한 논리 테스트 및 값 비교

- -gt
- -ge
- -lt
- -le
- -n
- -z
조건부 구조
if <CONDITION>; then
<STATEMENT>
....
<STATEMENT
fi
## 조건이 많을 경우
if <CONDITION>; then
<STATEMENT>
..
<STATEMENT>
elif <CONDITION>; then
<STATEMENT>
..
<STATEMENT>
else
<STATEMENT>
..
<STATEMENT>
if

정규표현식 사용한 검색과 grep은 연습이 필요
'RedHat' 카테고리의 다른 글
전원 끄기, 재 부팅, 디렉터리, 파일, inode(hardlink,symboliclink) (1) | 2023.10.24 |
---|